【问题标题】:How to Display a Default Image in ImageView Of RecyclerView's Item?如何在 RecyclerView 的 Item 的 ImageView 中显示默认图片?
【发布时间】:2018-12-12 05:37:55
【问题描述】:

在我的 Android 应用程序中,捕获的图像及其详细信息存储并显示在回收站视图中。详细信息是图片的名称和描述。我将详细信息与捕获的图像的存储路径(mCurrentpath)一起存储在房间数据库表中。我能够检索数据库的每一行并将其显示在 recyclerview 项目中。问题是 - 如果我尝试只保存细节而不捕获任何图片,该项目会显示一个空的图像视图以及细节。我需要显示默认图像,而不是显示空图像视图。请帮助 注意:如果未捕获图像,我还尝试在数据库中保存默认字符串。并在 onBindViewHolder 中使用 if() 语句检查

@Override
    public void onBindViewHolder(@NonNull ImageHolder imageHolder, int i) {
        ImageEntry currentImageEntry = imageEntries.get(i);
        String storedAddress = currentImageEntry.getImageStoredAddress();

          if(storedAddress != "Address is null") {
            imageHolder.imageView.setImageBitmap(BitmapFactory.decodeFile(currentImageEntry.getImageStoredAddress()));
        }else {imageHolder.imageView.setImageResource(R.drawable.default_image);}


        imageHolder.textViewTpye.setText(currentImageEntry.getPropertyType());
        imageHolder.textViewDesc.setText(currentImageEntry.getProprtyDescription());
    }

谢谢

【问题讨论】:

  • "Address is null" 是你在没有图片路径的情况下使用的文本吗?我的意思是你检查是否有图像?
  • 不能直接在xml文件中设置默认图片,地址不为空就改吗?
  • 如果没有图像被捕获,“地址为空”作为图像地址存储在数据库中。我再次检查 bindViewholder
  • OnBindViewHolder 中的 if - else 语句没有像我预期的那样工作。If {} 显示了所需的结果,但 else 部分没有显示默认图像,而是图像视图为空

标签: android android-recyclerview android-camera


【解决方案1】:

使用equals 表示字符串值

if (storedAddress.equals("Address is null")) { 
    imageHolder.imageView.setImageResource(R.drawable.default_image);
} else {
    imageHolder.imageView.setImageBitmap(BitmapFactory.decodeFile(currentImageEntry.getImageStoredAddress()));
}

注意: == 测试对象引用,.equals() 测试字符串值。

例如,

String a="test me";
String b="test me";

a == b //this will return false

a.equals(b) //this will return true

【讨论】:

  • 完美运行,非常感谢您和所有人
  • 很高兴为您提供帮助。如果您认为它解决了您的问题,请接受答案。 :)
【解决方案2】:

只需在 XML 文件中放置一个默认图像并更改此图像 如果

if(storedAddress != "Address is null")

或者如果没有捕获到图像,则将默认图像地址存储在数据库中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    相关资源
    最近更新 更多