有沒有辦法獲得另一個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