admin管理员组文章数量:1609965
说明
本文提供的代码仅供参考。不建议用于生产环境。
可能有些地方在最新版本的Auto.js上面需要做修改,才能运行。
Auto.js简介
Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。
与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。
Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。
推荐教程
Auto.js Pro安卓全分辨率免ROOT引流脚本开发视频教程(HD超清1080p)
开发文档
Auto.js Pro开发文档
文档尚在完善中,可能有文档描述和代码实际行为有出入的情况。
为什么要使用Auto.js Pro开发脚本,有什么特点?
吸引我使用Auto.js Pro的原因有很多。最主要的几个原因是:
- Auto.js Pro能开发免ROOT的安卓脚本
- Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型
- Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面
- Auto.js Pro使用的javascript的语法比较优雅,代码可读性强
- Auto.js Pro的命令库非常的丰富,接口比较多
- Auto.js Pro脚本文件体积比较小。1000行的代码,打包后的apk文件只有3-5M,还没有广告
示例代码
// 此代码由飞云脚本圈www.feiyunjs整理提供
/**
* 作者: 家
* 功能: 动态布局
*/
"ui";
importClass(android.widget.TextView)
ui.layout(
<vertical id="帮主">
<horizontal>
<button id="管家" textSize="16sp" margin="8" gravity="center" >管家加人</button>
<button id="白夫人" textSize="16sp" margin="8" gravity="center" >白夫人减人</button>
<button id="乔峰" textSize="16sp" margin="8" gravity="center" >乔峰加布局</button>
</horizontal>
</vertical>
)
var 帮主 = ui.帮主
ui.管家.click(
() => {
addTextView(帮主)
}
)
ui.白夫人.click(
() => {
delView(帮主)
}
)
ui.乔峰.click(
() => {
log('加布局开始')
addLayout(帮主)
log('加布局结束')
}
)
function delView(parent) {
log('得不到的就毁掉它')
parent.removeView(parent.getChildAt(1))
}
function addTextView(parent) {
// var child = view
var child = new TextView(context);
child.setTextSize(20);
child.setTextColor(colors.parseColor("#ff00f0"))
child.setText("左护法");
child.setGravity(0); //左护法
parent.addView(child);
log(child)
var child = new TextView(context);
child.setTextSize(20);
child.setTextColor(colors.parseColor("#ff00f0"))
child.setText("大长老"); //中间的是大长老
child.setGravity(1);
parent.addView(child);
log(child)
var child = new TextView(context);
child.setTextSize(20);
child.setTextColor(colors.parseColor("#ff00f0"))
child.setText("右护法");
child.setGravity(5); //右护法
parent.addView(child);
log(child)
}
function addLayout(parent) {
var layo = new android.widget.LinearLayout(context)
// var layo=android.widget.FrameLayout.LinearLayout(context)
layo.setOrientation(android.widget.LinearLayout.HORIZONTAL);
layo.setId(android.view.View.generateViewId())
// layo.setOrientation( android.widget.FrameLayout.LinearLayout.VERTICAL );
var child1 = new TextView(context);
child1.setTextSize(20);
child1.setTextColor(colors.parseColor("#ff00f0"))
child1.setText("左护法");
child1.setGravity(0); //左护法
child1.setLayoutParams(new android.widget.LinearLayout.LayoutParams(0, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, 1));
// child1.setLayoutParams(new android.widget.LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, 0, 1));
var child2 = new TextView(context);
child2.setTextSize(20);
child2.setTextColor(colors.parseColor("#ff00f0"))
child2.setText("大长老"); //中间的是大长老
child2.setGravity(1);
child2.setLayoutParams(new android.widget.LinearLayout.LayoutParams(0, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, 1));
var child3 = new TextView(context);
child3.setTextSize(20);
child3.setTextColor(colors.parseColor("#ff00f0"))
child3.setText("右护法");
child3.setGravity(5); //右护法
child3.setLayoutParams(new android.widget.LinearLayout.LayoutParams(0, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, 1));
layo.addView(child1)
layo.addView(child2)
layo.addView(child3)
parent.addView(layo)
}
// mView.setLayoutParams(new android.widget.LinearLayout.LayoutParams(
// android.widget.LinearLayout.LayoutParams.MATCH_PARENT, 0, 1));
// 第一个参数是width,第二个参数是height,第三个参数是weight
// 如果orientation是vertical,width就是0,如果orientation是horizontal,height就是0
版权声明:本文标题:基于autojs的动态布局例子,安卓免root运行 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1728586644a1164982.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论