Как правильно очистить ImageView? - PullRequest
13 голосов
/ 29 февраля 2012

Например, в моей деятельности у меня есть такой код (я пропускаю инициализацию переменных):

ImageView iview; //some ImageView
Bitmap b; //some Bitmap
iview.setImageBitmap(b);

Вопрос - как правильно очистить ресурсы iview (с уничтожением представления или без него)? Будет ли ImageView освобождать свои ресурсы (используемые в собственном коде) после b.recycle()?

Я полагаю, что ImageView не просто освобождает ресурсы после действия onStop (или onDestroy).

Ответы [ 5 ]

40 голосов
/ 29 февраля 2012
imgview.setImageResource(0);

или

imgview.setImageDrawable(null);
5 голосов
/ 29 февраля 2012

нет, вам нужно unbindDrawables, вы можете сделать это, установив iview.setImageDrawable(null);

1 голос
/ 12 января 2017

Вы можете часто использовать это работает:

imageView.setImageResource(0);
0 голосов
/ 21 мая 2018

, если у вас ничего не работает, попробуйте установить цвет фона представления в цвет макета. Если мой цвет макета белый, вы можете сделать это следующим образом:

 edit_countflag.setBackgroundColor(Color.parseColor("#ffffff"));
//then set the image
 edit_countflag.setImageResource(R.drawable.flag_id);
0 голосов
/ 12 февраля 2015
viewToUse.setImageResource(android.R.color.transparent);
  • Я думаю, что использование setImageResource с идентификатором цвета создаст проблемы при сбое в Android 2.2.1, обязательно протестируйте его.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...