获取其他Android应用程序的图标的资源ID(Get resource ID of the ico

2019-09-21 04:53发布

有没有办法让其他Android应用程序的图标的资源ID? (EX。 com.android.systemui.R.drawable.ic_xxx

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

谢谢

Answer 1:

你可以得到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) {}


Answer 2:

这个方法应该得到一个应用程序,包括你的应用程序图标的工作:

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


文章来源: Get resource ID of the icon of another android application