AutoJs学习-应用列表
2023-09-14 09:04:17 时间
👉关于作者
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单。
本文约2.8千字,新手阅读需要10分钟,复习需要3分钟 【收藏随时查阅不再迷路】
👉实践过程
"ui";
var IconView = (function() {
//继承ui.Widget
util.extend(IconView, ui.Widget);
function IconView() {
//调用父类构造函数
ui.Widget.call(this);
//自定义属性color,定义按钮颜色
this.defineAttr("packageName", (view, name, defaultGetter) => {
return this._packageName;
}, (view, name, value, defaultSetter) => {
this._packageName = value;
view.setImageDrawable(icons[value]);
});
}
IconView.prototype.render = function() {
return (
<img />
);
}
ui.registerWidget("icon", IconView);
return IconView;
})();
var apps = [];
var icons = {};
ui.layout(
<vertical bg="#ffffff">
<list id="apps" layout_weight="1">
<linear bg="?selectableItemBackground" w="*">
<icon packageName="{{this.packageName}}" w="50" h="70" margin="16" />
<vertical>
<text id="name" textSize="16sp" textColor="#000000" text="{{this.appName}}" marginTop="16" maxLines="1" ellipsize="end"/>
<text id="path" textSize="13sp" textColor="#929292" text="{{this.packageName}}" marginTop="8" maxLines="1" ellipsize="end"/>
</vertical>
</linear>
</list>
<progressbar id="progressbar" indeterminate="true" style="@style/Base.Widget.AppCompat.ProgressBar.Horizontal"/>
</vertical>
);
ui.apps.setDataSource(apps);
ui.apps.on("item_click", function(item, pos){
toast(item);
});
//启动线程来扫描音乐文件
threads.start(function () {
listApps(apps);
ui.run(()=> {
ui.progressbar.setVisibility(8);
});
});
function listApps(apps) {
var pm = context.getPackageManager();
let list = pm.getInstalledApplications(0);
for(let i = 0; i < list.size(); i++){
let p = list.get(i);
icons[p.packageName] = p.loadIcon(pm);
apps.push({
appName: p.loadLabel(pm),
packageName: p.packageName
});
}
}
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。
温馨提示:点击下方卡片获取更多意想不到的资源。