ディスプレイに s を再利用ImageView
していますが、ある時点でそれを置く値がありません。
ImageView
では、Androidでをクリアする方法は?
私はもう試した:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
それらのどれもビューをクリアしていません。以前の画像が表示されています。
ディスプレイに s を再利用ImageView
していますが、ある時点でそれを置く値がありません。
ImageView
では、Androidでをクリアする方法は?
私はもう試した:
mPhotoView.invalidate();
mPhotoView.setImageBitmap(null);
それらのどれもビューをクリアしていません。以前の画像が表示されています。
私はdennis.sheppardソリューションでそれを行っていました:
viewToUse.setImageResource(0);
それは機能しますが、文書化されていないため、ビュー内の他の何かに影響を与えるかどうかは明確ではありません (必要に応じてImageView コードを確認できますが、私はしませんでした)。
最善の解決策は次のとおりだと思います。
viewToUse.setImageResource(android.R.color.transparent);
状態を元に戻すのに難しいことは何もないので、このソリューションが最も気に入っています。また、それが何をしているのかも明らかです。
同様の問題があり、基本的に画面から ImageViews を完全に削除する必要がありました。ここでの答えのいくつかは正しい方向に私を導きましたが、最終的に setImageDrawable() を呼び出すことはうまくいきました:
imgView.setImageDrawable(null);
(コメントで述べたように、そのような使用法は公式ドキュメントに記載されています: ImageView#setImageDrawable。)
私はこれが古いことを知っていますが、私はこれを達成することができました
viewToUse.setImageResource(0);
うまくいくとは思えませんが、気まぐれに試してみたところ、完全に機能しました。
ImageViewでImageとDrawableCacheをクリアするためにこれを試しました
ImgView.setImageBitmap(null);
ImgView.destroyDrawingCache();
これがうまくいくことを願っています!
別の画像を表示していないときに ImageView を設定するデフォルトの画像が必要なようです。これは、連絡先アプリケーションがそれを行う方法です。
if (photoId == 0) {
viewToUse.setImageResource(R.drawable.ic_contact_list_picture);
} else {
// ... here is where they set an actual image ...
}
これらの解決策のいずれも、既に設定した画像をクリアしていない場合 (特にsetImageResource(0)
またはsetImageResources(android.R.color.transparent)
を使用して、現在の画像が背景として設定されていないことを確認してくださいsetBackgroundDrawable(...)
。
コードは、前景の画像リソースを、設定した背景画像の前に透明なものに設定し、引き続き表示します。
ねえ、私はこの答えに非常に遅れていることを知っていますが、これを共有しなければならないと思っただけです.
画像をリセットするときに呼び出すメソッドは、設定中に呼び出したメソッドと同じでなければなりません。
画像ソース@dennis.sheepardをリセットしたい場合、最初にビットマップに画像を設定している場合にのみ、回答が正常に機能しますsetImageResource()
例えば、
私は使用setImageBitmap()
していたため、設定が機能しませんでしたがsetImageResource(0)
、代わりに使用し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)
何を設定しようとしているのかを指摘し、ドローアブルを期待している場所を確認できますか?
次のことをしてはいけませんか?
imageview.setImageDrawable(this.getResources().getDrawable(R.drawable.icon_image));
imageview.setImageDrawable(getApplicationContext().getResources().getDrawable(R.drawable.icon_profile_image));