有没有办法获取另一个android应用程序图标的资源ID ?(例如com.android.systemui.R.drawable.ic_xxx
)
我试过context.getApplicationInfo().icon
了,但它返回了一个长整数。这可能吗?
谢谢
您可以使用以下方法获取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) {}
此方法应该适用于获取应用程序的应用程序图标,包括您的应用程序图标:
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);