Cómo comprobar si un ImageView se adjunta con la imagen en android
Estoy fijando una imagen a ImageView en el código androide no en xml, pero no podría hacer hacia fuera cómo comprobar si esa imagen se ha fijado en o no en java.
Intentado con imageViewOne.getVisibility() == 0
pero no funciona
Si la imagen se ha fijado a ImageView entonces agrego esa imagen para enviar el correo.
ImageViewOne.getVisibility () == 0
Utilice esto en su lugar:
imageViewOne.getDrawable() == null
Tenga en cuenta que si establece una imagen a través de ImageView.setImageBitmap(BITMAP)
que crea internamente un nuevo BitmapDrawable
incluso si pasa null
. En ese caso, el cheque imageViewOne.getDrawable() == null
es falso en cualquier momento. Para saber si una imagen está configurada, puede hacer lo siguiente:
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; }
La forma correcta de comprobar si el ImageView está conectado con la imagen es:
if (imageView.getDrawable() == null){ //Image doesn´t exist. }else{ //Image Exists!. }
Algunos métodos para cargar imágenes en ImageView como Glide o Picasso tienen un poco de retraso, así que debemos esperar unos milisegundos para comprobar:
//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
Puede hacer imageViewOne.getDrawable () para la imagen que establezca en el atributo src, que significa setImageResource / Bitmap. O imageViewOne.getBackground () para el atributo background, que significa 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"); }