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

kev*_*liu 1 resources icons android

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

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

谢谢

jen*_*nzz 5

您可以使用以下方式获取Drawable应用程序的图标:

Drawable icon = getPackageManager().getApplicationIcon( PACKAGE_NAME );
Run Code Online (Sandbox Code Playgroud)

如果您对自己应用的Drawable的资源ID感兴趣,请尝试以下方法:

int resourceID = getResources().getIdentifier( DRAWABLE_NAME , "drawable", PACKAGE_NAME );
Run Code Online (Sandbox Code Playgroud)

或者,如果您关心性能,这个版本更快,但使用反射:

try {
      Class resource = R.drawable.class;
      Field field = resource.getField( DRAWABLE_NAME );
      int drawableId = field.getInt(null);
    } catch (Exception e) {}
Run Code Online (Sandbox Code Playgroud)