Android:显示来自两个不同来源的ImageView

Android:显示来自两个不同来源的ImageView,android,imageview,Android,Imageview,我希望根据包含数据的源填充imageview。holder.imgImage可以有位图源或可绘制路径,但我只希望根据显示的图像显示一个。我已经尝试过if(image!=null),但似乎不起作用 @Override public void onBindViewHolder(@NonNull ViewHolder holder, int position) { holder.myTextView1.setText(categoryList.get(position).getRecipe_n

我希望根据包含数据的源填充imageview。holder.imgImage可以有位图源或可绘制路径,但我只希望根据显示的图像显示一个。我已经尝试过if(image!=null),但似乎不起作用

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    holder.myTextView1.setText(categoryList.get(position).getRecipe_name());
    holder.myTextView2.setText(categoryList.get(position).getCategory_name());
    String image2 = categoryList.get(position).getImage2();
    Bitmap myBitmap = BitmapFactory.decodeFile(image2);
    holder.imgImage.setImageBitmap(myBitmap);
    holder.imgImage.setImageResource(categoryList.get(position).getImage());

}

可能会检查创建的
位图是否为
null

Bitmap myBitmap = BitmapFactory.decodeFile(image2);
if (myBitmap != null)
    holder.imgImage.setImageBitmap(myBitmap);
else
    holder.imgImage.setImageResource(categoryList.get(position).getImage());
getImage2()
返回
null
或空字符串时,可能会出现这种情况

String image2 = categoryList.get(position).getImage2();
Bitmap myBitmap = (image2 != null && image2.length()) > 0 ? 
    BitmapFactory.decodeFile(image2) : null;

这是可行的,但是我得到了这个错误E/位图工厂:无法解码流:java.io.FileNotFoundException:/storage/simulated/0/DCIM/Camera/20200923_103428.jpg:open failed:EACCES(权限被拒绝)好吧,这是另一个主题,应该是另一个问题。。。你在舱单上有适当的许可吗<代码>
注意,由于Android 6.0,您可能不得不这样做,仅在清单中声明perm是不够的