有没有办法让其他Android应用程序的图标的资源ID? (EX。 com.android.systemui.R.drawable.ic_xxx
)
我试图context.getApplicationInfo().icon
,但它返回一个长整型。 这可能吗?
谢谢
有没有办法让其他Android应用程序的图标的资源ID? (EX。 com.android.systemui.R.drawable.ic_xxx
)
我试图context.getApplicationInfo().icon
,但它返回一个长整型。 这可能吗?
谢谢
你可以得到Drawable
使用一个应用程序的图标:
Drawable icon = getPackageManager().getApplicationIcon( PACKAGE_NAME );
如果你有兴趣在自己的应用程序的可绘制的资源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);