【问题标题】:Set an image if Uri is empty如果 Uri 为空,则设置图像
【发布时间】:2017-08-19 20:33:49
【问题描述】:

如果 Uri 为空,我想为 Uri 设置图像,这就是我所做的:

if (imageUri == null)
{
    imageUri = imageUri.parse(String.valueOf(R.drawable.no_image_available));
}

它没有给出任何错误但它不起作用,我可以使用其他方法来实现这一点吗?

【问题讨论】:

  • 我在stackoverflow.com/questions/6602417/… 中找到了一些解决方案,希望它有效:)
  • 使用:Uri uri = Uri.parse("android.resource://your.package.here/drawable/R.drawable.no_image_available"); imageview.setImageURI(uri);
  • @RustFisher 谢谢,确实有帮助。
  • @rafsanahmad007 哇,它变得简单了,谢谢。
  • @Zack 我已将其添加为答案。

标签: android uri


【解决方案1】:

这个:

imageUri = imageUri.parse(String.valueOf(R.drawable.no_image_available));

不会给你一个有效的Uri

还有更简单的选择:

选项 1

 Uri uri = Uri.parse("android.resource://your.package.here/drawable/R.drawable.no_image_available"); 
imageview.setImageURI(uri);  //set the uri

使用:

if (imageUri == null)
{
    imageView.setImageResource(R.drawable.no_image_available);
}

【讨论】:

    【解决方案2】:

    只要检查 Empty URI 不等于 followUri,这个检查包括 null 检查:

     if (!Uri.EMPTY.equals(followUri)) {
            //handle followUri
     }
    

    【讨论】:

    • 大括号之间需要什么?
    【解决方案3】:
    Instead you can use glide library. If imageUrl is there then it will show otherwise it will take placeHolder image.
    
    
        Glide.with(context)
                .load(imageUrl)
                .diskCacheStrategy(DiskCacheStrategy.SOURCE)
                .dontTransform()
                .placeholder(placeholder)
                .into(imageView);
    
    
    http://www.gadgetsaint.com/android/circular-images-glide-library-android/#.WNiXPxKGNPN
    

    【讨论】:

      【解决方案4】:
      Bitmap yourImageNotFoundBitmap = BitmapFactory.decodeResource(context.getResources(),
                                                 R.drawable.no_image_available);
      if (imageUri == null){
      
      yourImage.setImageBitmap(yourImageNotFoundBitmap);
      
      }
      

      【讨论】:

      • 为什么不直接从资源中设置图片呢?位图的内存成本更高。不错的答案,但直接处理更改会更好
      • @MohammedAtif,我怎样才能做到这一点?
      • yourImage.setImageResource(R.drawable.no_image_available); 就是这样
      • @MohammedAtif,哇......太棒了,它工作得很好......非常感谢
      猜你喜欢
      • 2016-04-05
      • 2020-05-23
      • 2013-04-02
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多