将Drawable / Bitmap转换为ResourceID(android)

时间:2013-02-01 01:19:34

标签: android resources bitmap drawable

所以我需要有一个基于我SDCARD上的Image的图标,但是我只能得到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");
}

2 个答案:

答案 0 :(得分:1)

我想你不能。所有R.id ..等都是资源included in your apk。为什么还需要资源ID?

答案 1 :(得分:1)

是的,我相信你不能这样做。您必须在资源中手动添加图像才能获取ID,或者您可以添加将其添加为内容视图中的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);