我在android代码中将图像设置为ImageView,而不是在xml中,但不知道如何检查该图像是否已在java中设置。
尝试使用imageViewOne.getVisibility() == 0
但不起作用
如果图像已设置为ImageView,则我将附加该图像以发送邮件。
imageViewOne.getVisibility()==0
改为使用这个:
imageViewOne.getDrawable() == null
来自文件:
/**
*获取当前Drawable,如果没有Drawable,则为null
*已分配
*
*@返回视图的可绘制项,如果没有可绘制项则返回null
*已分配
*
*/
public Drawable getDrawable(){}
请注意,如果通过ImageView.setImageBitmap(BITMAP)
设置图像,即使通过null
,它也会在内部创建一个新的BitmapDrawable
。在这种情况下,检查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;
}
检查ImageView是否附有图像的正确方法是:
if (imageView.getDrawable() == null){
//Image doesn´t exist.
}else{
//Image Exists!.
}
一些将图像加载到ImageView的方法(如使用Glide或Picasso)有一点延迟,因此我们必须等待几毫秒才能检查:
//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
ImageView myImage = (ImageView) findViewById(R.id.imageView);
if (myImage.getDrawable() == null){
//The imageView is empty
} else{
// The imageView is occupied.
}
或
ImageView myImage = (ImageView) findViewById(R.id.imageView);
if ( null == myImage.getDrawable()){
//The imageView is empty
} else{
// The imageView is occupied.
}
您可以对在src属性上设置的图像执行imageViewOne.getDrawable(),即setImageResource/Bitmap。或imageViewOne.getBackground()作为背景属性,即setBackground。
当任何可绘制的图片都在您的imageview中时,以及在从库或任何位置添加图像后,您也可以执行此操作。试试这个
(imgAdd.drawable.constantState == resources.getDrawable(R.drawable.user_new).constantState) -> {
Snackbar.make(view, "Please Add Product Image",
Snackbar.LENGTH_SHORT).show()
}
在Xamarin Android imageViewOne.Drawable == null
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");
}