我在Android代码中将图像设置为不在xml中的ImageView,但是无法弄清楚如何检查该图像是否已在java中设置。
尝试imageViewOne.getVisibility() == 0
但它无法正常工作
如果图像已设置为ImageView,那么我附加该图像以发送邮件。
答案 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");
}