zl程序教程

您现在的位置是:首页 >  后端

当前栏目

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/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
空名先生