所以我需要一个基于我的SDCARD上的图像的图标,但我只能获取Drawable/Bitmap,我如何才能基于它获取int资源?
public static String SDCARD_PATH = Environment.getExternalStorageDirectory().getPath() + "/folder/";
public static Drawable getDrawableFromChannelID(int id) {
return Drawable.createFromPath(Utils.SDCARD_PATH + id + ".png");
}
public static Bitmap getBitmapFromChannelID(int id) {
return BitmapFactory.decodeFile(Utils.SDCARD_PATH + id + ".png");
}
最佳答案
是的,我相信你做不到。您必须手动在资源中添加图像才能获取 id,或者您可以将其添加为 contentview 中的 ImageView 并在其上添加 Id,只需将其可见性设置为 Gone,这样就不会影响您的其他布局,像这样
ImageView icon=new ImageView(this);
img.setBackground(<urDrawableIcon>);
RelativeLayout.LayoutParams iconlayout=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
icon.setId(11111);//set your own id;
icon.setVisibility(View.GONE);
addContentView(icon,iconlayout);
//so your id is 11111; NotificationBuilder.setIcon(11111);
关于android - 将 Drawable/Bitmap 转换为 ResourceID (android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14638203/