2013-05-15 4 views
0

У меня есть ImageButton со стандартным рисунком. Из кода я установил размер макета ImageButton, поэтому после этой модификации изображение не покрывает всю кнопку из-за centerInside scaleType. В событии OnClick я использую этот код для замены изображения ImageButton.Как очистить фон ImageButton?

button.setImageBitmap(img); 
button.invalidate(); 

Новое изображение меньше старого. После замены появится новое изображение, но старые части изображения можно увидеть вокруг нового. Как я могу заставить очистить старое изображение или просто перерисовать весь ImageButton, чтобы показать только новое изображение?

<ImageButton 
      android:id="@+id/btnPhotoFront" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_margin="3dp" 
      android:layout_weight="1" 
      android:background="@android:color/transparent" 
      android:contentDescription="@string/front" 
      android:scaleType="centerInside" 
      android:src="@drawable/camera" /> 

Я пробовал с android: background = "# 00000000", но не имеет никакого эффекта. Перекраска работает только в том случае, если я не устанавливаю фон и не оставляю слой серых кнопок по умолчанию.

+0

android: background = "@ null" –

ответ

1

Попробуйте

android:background="@null" 

Кроме того, обратите внимание, что вы устанавливаете два различных свойства. setImageBitmap не соответствующий метод для андроида: фон

b.setBackground(drawable) 
    b.setImageBitmap(bm); 
+0

Да, я тоже пробовал это. Мне нужно свойство фона, чтобы оно было прозрачным и нужно изображение на нем, которое не охватывает всю кнопку. Проблема в том, что новое изображение не перекрывает старое, а некоторые части старого листы видимы. – 10yei

+0

Я выяснил обходное решение. Не красиво, но работает. Я создал файл png черного цвета размером 1x1 пиксель и поместил его в drawables. Я использовал это как фон вместо цвета. В этом случае Android должен масштабировать это изображение, и это заставит ожидаемую перерисовку, когда я сменю переднее изображение ImageButton. – 10yei

0

Держу пари файл изображения

android:src="@drawable/camera" 

не имеют прозрачный фон. Используйте Photoshop или GIMP или что-то подобное, вырежьте свой образ и поместите его на прозрачный фон.

Смежные вопросы