【问题标题】:Icon from getPackageManager in listview来自列表视图中 getPackageManager 的图标
【发布时间】:2013-11-08 11:55:06
【问题描述】:

我想在我的列表视图中添加来自getPackageManager 的应用程序图标。我尝试了类似的东西:

try {
            // Icon
            Drawable icon = pm.getApplicationIcon(info.processName);
            Drawable default_icon = pm.getDefaultActivityIcon();

            CharSequence c = pm.getApplicationLabel(pm.getApplicationInfo(info.processName, PackageManager.GET_META_DATA));
            Log.w("LABEL", "Name" + c.toString());
            String pName = info.processName;
            adapter.add(icon + c.toString().toUpperCase() + "\n" + info.processName);
          }

但它只返回一个字符串。如果可能的话,我想要图标而不是字符串。这可能吗?

【问题讨论】:

  • 您在 Default_icon 中得到了什么?在 Icon 中得到了什么?
  • default_icon 不考虑它.. info.processName 是该进程的名称.. 列表视图显示所有当前活动的应用程序..

标签: android android-listview android-drawable android-package-managers android-icons


【解决方案1】:

在您的列表视图适配器中使用这一行来获取应用程序图标

  PackageInfo packageInfo = (PackageInfo) getItem(position);
    Drawable appIcon =  packageManager.getApplicationIcon(packageInfo.applicationInfo);
    String appName = packageManager.getApplicationLabel(
            packageInfo.applicationInfo).toString();
    appIcon.setBounds(0, 0, 40, 40);
    holder.apkName.setCompoundDrawables(appIcon, null, null, null);
    holder.apkName.setCompoundDrawablePadding(15);
    holder.apkName.setText(appName);

完整的源代码参考下面的网站

http://theopentutorials.com/tutorials/android/listview/how-to-get-list-of-installed-apps-in-android/

【讨论】:

  • holder.apkName 是什么?
  • 我的意思是持有人?我在哪里创建它?
猜你喜欢
  • 1970-01-01
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-13
  • 2023-03-26
  • 1970-01-01
相关资源
最近更新 更多