2013-05-15 2 views
0

기본 drawable 이미지가있는 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

해결 방법을 찾았습니다. 아름다운 것은 아니지만 작동합니다. 나는 1x1 픽셀 크기의 검은 색 png 파일을 생성하여 드로어 블에 넣었습니다. 색상 대신 배경으로 사용했습니다. 이 경우 안드로이드는이 이미지의 크기를 조절해야하며 ImageButton의 전면 이미지를 변경할 때 예상되는 다시 칠하기를 강제합니다. – 10yei

0

나는 당신의

android:src="@drawable/camera" 

이미지 파일을 투명한 배경이없는 걸. Photoshop 또는 GIMP 또는 유사한 것을 사용하여 이미지를 잘라 내고 투명한 배경에 놓습니다.

관련 문제