Solución:
imageViewOne.getVisibility () == 0
usa esto en su lugar:
imageViewOne.getDrawable() == null
Tenga en cuenta que si establece una imagen a través de ImageView.setImageBitmap(BITMAP)
crea internamente una nueva BitmapDrawable
incluso si pasas 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 verificar si ImageView está adjunto 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 usar Glide o Picasso, tienen un pequeño retraso, por lo que debemos esperar algunos milisegundos para verificar:
//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
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)