如何在Android中清除ImageView?
我正在重新使用ImageView
作为我的显示器,但在某些时候,我没有价值可言。
那么如何清除Android中的ImageView
?
我试过了:
mPhotoView.invalidate(); mPhotoView.setImageBitmap(null);
他们中没有一个已经清除了这个观点,它仍然显示出先前的形象
我曾经用dennis.sheppard解决scheme做到这一点 :
viewToUse.setImageResource(0);
它的工作原理,但它没有被logging,所以它不是真的很清楚,如果它在视图中的其他影响(你可以检查ImageView代码,如果你喜欢,我没有)。
我认为最好的解决办法是:
viewToUse.setImageResource(android.R.color.transparent);
我喜欢这个解决scheme,最重要的是在恢复状态方面没有任何棘手的问题,而且它也清楚它在做什么。
我有一个类似的问题,我需要从屏幕上完全删除ImageViews。 这里的一些答案使我朝着正确的方向发展,但最终调用setImageDrawable()为我工作:
imgView.setImageDrawable(null);
我知道这是旧的,但是我能够完成这个
viewToUse.setImageResource(0);
似乎不应该工作,但我试了一下,它完美的工作。
这听起来像你想要的是一个默认的图像来设置您的ImageView,当它不显示不同的图像。 联系人应用程序就是这样做的:
if (photoId == 0) { viewToUse.setImageResource(R.drawable.ic_contact_list_picture); } else { // ... here is where they set an actual image ... }
我试图在ImageView中清除Image和DrawableCache
ImgView.setImageBitmap(null); ImgView.destroyDrawingCache();
我希望这对你有用!
如果这些解决scheme都没有清除已经设置的图像(特别是setImageResource(0)
或setImageResources(android.R.color.transparent)
,请检查以确保当前图像未使用setBackgroundDrawable(...)
设置为背景setBackgroundDrawable(...)
或类似的东西。
你的代码只会将前景中的图像资源设置为在你设置的背景图像前透明的东西,并且仍然会显示。
嘿,我知道我对这个答案非常晚,但只是觉得我必须分享这个,
当你重置图像的时候调用的方法必须和你在设置时调用的方法相同。
当你想重置图片来源@ dennis.sheepard只有当你最初使用setImageResource()
设置图片位图时,
例如,
我已经使用setImageBitmap()
,因此设置setImageResource(0)
didn工作,而是我用setImageBitmap(null)
。
我能够通过定义一个drawable (类似于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);
这对我来说很漂亮!
对于ListView项目图像,您可以在列表适配器中为“无图像”情况设置ImageView.setVisibility(View.INVISIBLE)
或ImageView.setImageBitmap(null)
。
正如kwasi写和golu编辑,你可以使用透明,而不是白色的:
文件drawable/transparent.xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="@android:color/transparent"/> </shape>
在一个活动,查看等内部:
view.setImageResource(R.drawable.transparent);
要在ImageView中删除图像,请使用:
title_image.setImageResource(-1);
这个对我有用
我可以指出你想要设置什么吗?
你不应该做下面的事情吗?
imageview.setImageDrawable(this.getResources().getDrawable(R.drawable.icon_image)); imageview.setImageDrawable(getApplicationContext().getResources().getDrawable(R.drawable.icon_profile_image));
尝试使用mPhotoView.setAlpha(0)
使图像完全透明(使用255恢复)。