如何检查ImageView是否附加了android中的图像

时间:2012-02-02 14:20:45

标签: android

我在Android代码中将图像设置为不在xml中的ImageView,但是无法弄清楚如何检查该图像是否已在java中设置。

尝试imageViewOne.getVisibility() == 0 但它无法正常工作

如果图像已设置为ImageView,那么我附加该图像以发送邮件。

7 个答案:

答案 0 :(得分:125)

  

imageViewOne.getVisibility()== 0

改为使用:

imageViewOne.getDrawable() == null

答案 1 :(得分:35)

请注意,如果您通过ImageView.setImageBitmap(BITMAP)设置图片,即使您通过BitmapDrawable,它也会在内部创建新的null。在这种情况下,检查imageViewOne.getDrawable() == null随时都是假的。要了解是否设置了图像,您可以执行以下操作:

private boolean hasImage(@NonNull ImageView view) {
     Drawable drawable = view.getDrawable();
     boolean hasImage = (drawable != null);

     if (hasImage && (drawable instanceof BitmapDrawable)) {
         hasImage = ((BitmapDrawable)drawable).getBitmap() != null;
     }

     return hasImage;
}

答案 2 :(得分:2)

检查ImageView是否附有图像的正确方法是:

 if (imageView.getDrawable() == null){
       //Image doesn´t exist.
   }else{
        //Image Exists!.
 }

使用Glide或Picasso将图像加载到ImageView中的一些方法有一点延迟,因此我们必须等待几毫秒来检查:

    //Load Image.
    Glide.with(this)
            .load(imageURL)
            .into(imageView);

   //Wait for 500 ms then check!.
    Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
           if (imageView.getDrawable() == null){
              //Image doesn´t exist.
           }else{
              //Image Exists!.
           }
        }
    }, 500

答案 3 :(得分:2)

ImageView myImage = (ImageView) findViewById(R.id.imageView);

if ( null == myImage.getDrawable()){

//The imageView is empty

} else{ 


// The imageView is occupied.

}

brandColor = rgb(2,5,2);

pageBackgroundColor :{
    backgroundColor: brandColor,
},

答案 4 :(得分:0)

您可以为在src属性上设置的图像执行imageViewOne.getDrawable(),这意味着setImageResource / Bitmap。 或者imageViewOne.getBackground()用于background属性 - 意思是setBackground。

答案 5 :(得分:0)

当图像视图中有任何可绘制对象时,以及从图库或其他任何地方添加图像后,也可以执行此操作。试试这个

(imgAdd.drawable.constantState == resources.getDrawable(R.drawable.user_new).constantState) -> {
                    Snackbar.make(view, "Please Add Product Image",
                        Snackbar.LENGTH_SHORT).show()
                }

答案 6 :(得分:-2)

if (img_like.getTag() != null && img_like.getTag().toString().equals("red")) {
    img_like.setImageResource(R.drawable.heart);
    img_like.setTag("heart");
} else {
    img_like.setImageResource(R.drawable.red);
    img_like.setTag("red");
}