1

有没有办法获取另一个android应用程序图标的资源ID ?(例如com.android.systemui.R.drawable.ic_xxx

我试过context.getApplicationInfo().icon了,但它返回了一个长整数。这可能吗?

谢谢

4

2 回答 2

5

您可以使用以下方法获取Drawable应用程序的图标:

Drawable icon = getPackageManager().getApplicationIcon( PACKAGE_NAME );

如果您对自己应用的 Drawable 的资源 ID 感兴趣,请尝试以下操作:

int resourceID = getResources().getIdentifier( DRAWABLE_NAME , "drawable", PACKAGE_NAME );

或者,如果您关心性能,则此版本更快,但使用反射:

try {
      Class resource = R.drawable.class;
      Field field = resource.getField( DRAWABLE_NAME );
      int drawableId = field.getInt(null);
    } catch (Exception e) {}
于 2012-08-14T22:19:04.607 回答
1

此方法应该适用于获取应用程序的应用程序图标,包括您的应用程序图标:

String appPackageName=...; //use getPackageName() in case you wish to use yours
final PackageManager pm=getPackageManager();
final ApplicationInfo applicationInfo=pm.getApplicationInfo(packageName,PackageManager.GET_META_DATA);
final Resources resources=packageManager.getResourcesForApplication(applicationInfo);
final Bitmap appIconBitmap=BitmapFactory.decodeResource(resources,applicationInfo.icon);
于 2013-12-05T21:08:04.020 回答