2

所以我需要有一个基于我的 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");
}
4

2 回答 2

1

我认为你不能。所有 R.id.. 等都是您的 apk 中包含的资源。为什么你仍然需要一个资源ID?

于 2013-02-01T01:22:56.573 回答
1

是的,我相信你不能那样做。您必须手动将图像添加到资源中以获取 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);
于 2013-02-01T03:16:02.147 回答