前言:这个项目是我在做手表启动器美化时产生的,因为启动器是和表盘一体的,在表盘页面点击一下就进入桌面了,我想加类似的防误触功能(添加一个按钮切换是否单击进入桌面,按钮加在了左滑页自己写的负一屏页面的最后一个微信图标上)
而且还实现了双启动器(主要是不想用系统的启动器去,但是换成其他的启动器,表盘就没有了,而且锁屏键还失去了作用),表盘左右两部分点击进入不同的启动桌面,响应好的话,下期出教程≥﹏≤
(下面是浏览图)
言归正传,下面开启本期教程内容,用到了aide,mt管理器,我把教程分为AIDE篇和MT管理器篇
所需工具:
- MT管理器
AIDE汉化版
aide篇:
这里简单写了一个单击按钮(显示/隐藏)控件的项目做例子
布局代码
java代码
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管理器篇:
- 这个软件是我在网上随便找的,就像图中这么简洁,只有一个背景图片和可以滚动的文字
- 这里做出的修改是,在文本上再加一个按钮控件并同属一个相对布局,再用一个按钮控制其显示状态,覆盖掉文本,从而影响文本视图的正常使用。
修改xml布局
- 打开mt管理器,找到要修改的软件
- 找到要修改的文件,反编译
修改后保存
添加id,及按钮功能事件
- 点击文件resouces.arsc
- 依次点击 包名-id-右上角添加-新建资源-长按添加的资源项-复制id
- 点开文件classes.dex
- 纠正一下,下面添加的一行的tv1改成name
- 这段代码添加完就可以保存退出了
- 还记得前面你用aide打包了一个软件吗,在这个目录(/storage/emulated/0/Android/data/com.aide.ui2/cache/apk/)找到它
- 查看软件-打开dex文件-dex++编辑
为了方便,我把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)
- 然后返回,复制这个
- 再打开这个类文件
- 修改完成后,就可以保存退出了
- 然后我们点击安装包签名安装看一下效果
- 跟预期的效果一样
- 教程结束(^_^)
- 我把测试用的软件上传过来了点击下载
兄弟写的非常好 https://www.cscnn.com/
表评论4691
好,厉害
测试软件无法下载
重新上传了,现在可以了
好吧 我承认我完全看不懂