我重用ImageViews为我的显示,但在某些时候,我没有值把它。
那么如何在Android中清除ImageView呢?
我试过了:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
他们都没有清除视图,它仍然显示以前的图像。
我重用ImageViews为我的显示,但在某些时候,我没有值把它。
那么如何在Android中清除ImageView呢?
我试过了:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
他们都没有清除视图,它仍然显示以前的图像。
当前回答
听起来好像你想要的是一个默认图像,当ImageView没有显示不同的图像时设置它。联系人应用程序是这样做的:
if (photoId == 0) {
viewToUse.setImageResource(R.drawable.ic_contact_list_picture);
} else {
// ... here is where they set an actual image ...
}
其他回答
我可以通过定义一个可绘制对象(类似于blank_white_shape.xml)来实现这一点:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@android:color/white"/>
</shape>
当我想清除图像视图时,我只需调用
imageView.setImage(R.drawable.blank_white_shape);
这对我来说非常有用!
我有一个类似的问题,我需要从屏幕上完全删除ImageViews。这里的一些答案引导我走向正确的方向,但最终调用setImageDrawable()对我有用:
imgView.setImageDrawable(null);
(正如评论中提到的,这种用法在官方文档中有记录:imageview# setImageDrawable。)
如果你使用支持库,你会得到AppCompatImageView而不是ImageView,它在所有设备上支持setImageResource(0),所以你应该可以像使用setImageDrawable(null)和setImageBitmap(null)一样使用它。
否则,从某些Android版本开始,它应该可以正常工作。根据Android的代码和我的测试,我认为从Android API 22(5.1)使用setImageResource(0)应该是安全的。你可以在这里看到API 22和API 21的Android代码
要删除ImageView中的图像,请使用: title_image.setImageResource (1); 这对我很有用
听起来好像你想要的是一个默认图像,当ImageView没有显示不同的图像时设置它。联系人应用程序是这样做的:
if (photoId == 0) {
viewToUse.setImageResource(R.drawable.ic_contact_list_picture);
} else {
// ... here is where they set an actual image ...
}