有没有办法获得另一个Android应用程序图标的资源ID ? (例如com.android.systemui.R.drawable.ic_xxx
)
我尝试了context.getApplicationInfo().icon
,但它返回了一个长整数。
这可能吗?
由于
答案 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);