有没有办法获得另一个Android应用程序的图标的资源ID? (例如com.android.systemui.R.drawable.ic_xxx
)获取另一个Android应用程序的图标的资源ID
我试过context.getApplicationInfo().icon
但它返回一个长整数。 这可能吗?
感谢
有没有办法获得另一个Android应用程序的图标的资源ID? (例如com.android.systemui.R.drawable.ic_xxx
)获取另一个Android应用程序的图标的资源ID
我试过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) {}
有没有办法让其他应用程序的int资源id可绘制? – 2014-02-28 17:42:10
这个方法应该得到一个应用程序,包括你的应用程序图标的工作:
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);
没有办法得到一个可绘制的资源ID在你想要的格式(com.android.systemui。 R.drawable.ic_xxx)在运行时。资源ID引用R.java类中自动创建的静态整数字段。但是,您可以获取整个Drawable。查看下面的答案。 – jenzz 2012-08-14 23:10:55