65

我已经尝试了堆栈溢出的各种解决方案,但没有运气。我想要的是。

  1. 我知道不同应用程序的包名称。
  2. 我想从这些包名中获取应用程序图标。
  3. 在图像视图中显示这些图标。

例如,我有一个包名com.example.testnotification。如何获取此应用程序图标并将其显示在 ImageView 中?

4

4 回答 4

148

尝试这个:

try
{
    Drawable icon = getContext().getPackageManager().getApplicationIcon("com.example.testnotification");
    imageView.setImageDrawable(icon);
}
catch (PackageManager.NameNotFoundException e)
{
    e.printStackTrace();
}
于 2013-08-01T05:03:28.837 回答
12

如果您想从软件包名称中获取任何已安装应用程序的图标(图片),则只需复制并粘贴此代码。它将起作用:

try
{
    Drawable d = getPackageManager().getApplicationIcon("com.AdhamiPiranJhandukhel.com");
    my_imageView.setBackgroundDrawable(d);
}
catch (PackageManager.NameNotFoundException e)
{
    return;
}
于 2014-07-21T10:47:06.410 回答
8

这也有效:

try
{
    Drawable d = getPackageManager().getApplicationIcon(getApplicationInfo());
    my_imageView.setBackgroundDrawable(d);
}
catch (PackageManager.NameNotFoundException e)
{
    return;
}
于 2014-12-12T19:08:38.807 回答
1
try
{
    Drawable drawable = getPackageManager()
            .getApplicationIcon("com.whatsapp");
    imageView.setImageDrawable(drawable);
}
catch (PackageManager.NameNotFoundException e)
{
    e.printStackTrace();
}
于 2017-08-22T02:02:17.967 回答