如何检查一个ImageView是否与Android中的图像附加

我设置一个图像ImageView在android代码不是在xml中,但不能弄清楚如何检查该图像是否已被设置在或不在java中。

尝试imageViewOne.getVisibility() == 0但它不工作

如果图像已被设置为ImageView然后我附加该图像发送邮件。

imageViewOne.getVisibility()== 0

用这个代替:

 imageViewOne.getDrawable() == null 

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

 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; } 

检查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 

您可以为您在src属性上设置的图像(即setImageResource / Bitmap)设置imageViewOne.getDrawable()。 或imageViewOne.getBackground()为背景属性 – 意思是setBackground。

 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"); }