获取另一个Android应用程序的图标的资源ID

时间:2012-08-14 22:14:22

标签: android resources icons

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

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

由于

2 个答案:

答案 0 :(得分: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) {}

答案 1 :(得分:0)

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

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);