软件添加id功能按钮

尽意
2021-06-04 / 7 评论 / 708 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年06月05日,已超过1327天没有更新,若内容或图片失效,请留言反馈。

前言:这个项目是我在做手表启动器美化时产生的,因为启动器是和表盘一体的,在表盘页面点击一下就进入桌面了,我想加类似的防误触功能(添加一个按钮切换是否单击进入桌面,按钮加在了左滑页自己写的负一屏页面的最后一个微信图标上)
而且还实现了双启动器(主要是不想用系统的启动器去,但是换成其他的启动器,表盘就没有了,而且锁屏键还失去了作用),表盘左右两部分点击进入不同的启动桌面,响应好的话,下期出教程≥﹏≤
(下面是浏览图)

a.png

言归正传,下面开启本期教程内容,用到了aide,mt管理器,我把教程分为AIDE篇和MT管理器篇

所需工具:
  • MT管理器
  • AIDE汉化版

    aide篇:

    这里简单写了一个单击按钮(显示/隐藏)控件的项目做例子

    布局代码

    b.png
    Screenshot_2021-06-04-01-07-29-576_com.aide.ui2.jpg

java代码

Screenshot_2021-06-04-01-08-07-395_com.aide.ui2.jpg

public void b(View b)
    {
        Toast.makeText(this,"点击了控件",Toast.LENGTH_SHORT).show();
    }
    public void a(View a)
    {
        Button bn=(Button)findViewById(R.id.bn);
    
        //bn.setVisibility(bn.GONE);
        if(bn.getVisibility()==bn.VISIBLE)
        {
            bn.setVisibility(bn.GONE);
        }
        else
        {
            bn.setVisibility(bn.VISIBLE);
        }
    }
  • 简单分析一下,我们的思路是点击 按钮 实现切换控件(显示/隐藏)状态。
  • 在相对布局下, 按钮2 显示会覆盖住 按钮1 ,我们给 按钮1 添加一个点击事件(弹出提示文字), 按钮2 不作事件。
  • 当点击 按钮 使 按钮2 隐藏,再点下方区域,会出现提示文字,那么再次点击 按钮 切换 按钮2 显示,再点下方区域不会提示文字。
  • 代码完成,点击右上角的三角形按钮打包软件(不用安装,当然你也可以安装试试效果)
  • aide篇结束

    MT管理器篇:
  • 这个软件是我在网上随便找的,就像图中这么简洁,只有一个背景图片和可以滚动的文字
    Screenshot_2021-06-04-02-00-49-798_com.assets.cn.jpg
  • 这里做出的修改是,在文本上再加一个按钮控件并同属一个相对布局,再用一个按钮控制其显示状态,覆盖掉文本,从而影响文本视图的正常使用。

修改xml布局

  • 打开mt管理器,找到要修改的软件
  • 找到要修改的文件,反编译

c.png

  • 修改后保存

    添加id,及按钮功能事件

  • 点击文件resouces.arsc
  • 依次点击 包名-id-右上角添加-新建资源-长按添加的资源项-复制id

d.png

  • 点开文件classes.dex

e.png
f.png

  • 纠正一下,下面添加的一行的tv1改成name
  • 这段代码添加完就可以保存退出了
  • 还记得前面你用aide打包了一个软件吗,在这个目录(/storage/emulated/0/Android/data/com.aide.ui2/cache/apk/)找到它
  • 查看软件-打开dex文件-dex++编辑

g.png

  • 为了方便,我把a,b的代码直接贴了过来

    .method public b(Landroid/view/View;)V
      .registers 8
      .annotation system Ldalvik/annotation/Signature;
          value = {
              "(",
              "Landroid/view/View;",
              ")V"
          }
      .end annotation
    
      .prologue
      .line 19
      move-object v0, p0
    
      move-object v1, p1
    
      move-object v3, v0
    
      const-string v4, "点击了控件"
    
      const/4 v5, 0x0
    
      invoke-static {v3, v4, v5}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
    
      move-result-object v3
    
      invoke-virtual {v3}, Landroid/widget/Toast;->show()V
    
      return-void
    .end method
    .method public a(Landroid/view/View;)V
      .registers 9
      .annotation system Ldalvik/annotation/Signature;
          value = {
              "(",
              "Landroid/view/View;",
              ")V"
          }
      .end annotation
    
      .prologue
      .line 23
      move-object v0, p0
    
      move-object v1, p1
    
      move-object v5, v0
    
      const/high16 v6, 0x7f070000
    
      invoke-virtual {v5, v6}, Lcom/button/cc/MainActivity;->findViewById(I)Landroid/view/View;
    
      move-result-object v5
    
      check-cast v5, Landroid/widget/Button;
    
      move-object v3, v5
    
      .line 26
      move-object v5, v3
    
      invoke-virtual {v5}, Landroid/widget/Button;->getVisibility()I
    
      move-result v5
    
      const/4 v6, 0x0
    
      if-ne v5, v6, :cond_1b
    
      .line 28
      move-object v5, v3
    
      const/16 v6, 0x8
    
      invoke-virtual {v5, v6}, Landroid/widget/Button;->setVisibility(I)V
    
      .line 32
      :goto_1a
      return-void
    
      :cond_1b
      move-object v5, v3
    
      const/4 v6, 0x0
    
      invoke-virtual {v5, v6}, Landroid/widget/Button;->setVisibility(I)V
    
      goto :goto_1a
    .end method
    
  • 将刚刚复制的a,b的代码粘贴到这里(AssetsDemoActivity)

h.png

  • 然后返回,复制这个

i.png

  • 再打开这个类文件

j.png

  • 修改完成后,就可以保存退出了
  • 然后我们点击安装包签名安装看一下效果

k.png

  • 跟预期的效果一样
  • 教程结束(^_^)
  • 我把测试用的软件上传过来了点击下载
8

评论 (7)

取消
  1. 头像
    gxrtoabjkl
    Windows 10 · Google Chrome

    兄弟写的非常好 https://www.cscnn.com/

    回复
  2. 头像
    知名4691
    Windows 10 · Google Chrome

    表评论4691

    回复
  3. 头像
    暮箽曦 作者
    Android · Google Chrome

    表情

    回复
  4. 头像
    巴拉巴拉
    Android Pie · Google Chrome

    好,厉害

    回复
  5. 头像
    MT
    Android Oreo · Google Chrome

    测试软件无法下载

    回复
    1. 头像
      暮箽曦 作者
      Android Pie · Google Chrome
      @ MT

      重新上传了,现在可以了

      回复
  6. 头像
    MT论坛 ZIK
    Android · Google Chrome

    好吧 我承认我完全看不懂表情

    回复