android - 将 Drawable/Bitmap 转换为 ResourceID (android)

标签 android resources bitmap drawable

所以我需要一个基于我的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/

相关文章:

android - Recyclerview 设置 clipChildren

c# - 查找 C# 内置函数的实现细节

android - gradle添加依赖后找不到资源

java - oracle中将资源加载到java中

android - 从可绘制对象创建位图

java - 如何使用不在声明中的泛型来抑制未经检查的类型转换警告?

java - 用于更改 Android 应用布局背景颜色的切换按钮

java - 在 android 中更改 ImageView 的位图图像

android - 如何在 Android 中处理加载图像

android - Windows 照片查看器无法打开来自 Android Studio 的位图压缩图像