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

Android: Display ImageView from 2 different sources

我希望根据包含数据的源来填充图像视图。 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());

}

也许检查是否已创建 Bitmap 不是 null

Bitmap myBitmap = BitmapFactory.decodeFile(image2);
if (myBitmap != null)
    holder.imgImage.setImageBitmap(myBitmap);
else
    holder.imgImage.setImageResource(categoryList.get(position).getImage());

可能会有 getImage2() returns null 或空字符串的情况?

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