如何清除ImageButton的背景?

时间:2013-05-15 13:20:51

标签: android background bitmap imagebutton clear

我有一个带有默认可绘制图像的ImageButton。从代码中我设置了ImageButton布局大小,因此在修改之后,由于centerInside scaleType,图像不会覆盖整个按钮。在OnClick事件中,我使用此代码替换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”,但没有效果。 仅当我没有设置背景并保留默认的灰色按钮层时,重绘才有效。

2 个答案:

答案 0 :(得分:1)

尝试

android:background="@null"

另请注意,您正在设置两个不同的属性。 setImageBitmap不是android:background

的对应方法
    b.setBackground(drawable)
    b.setImageBitmap(bm);

答案 1 :(得分:0)

我打赌你的

android:src="@drawable/camera" 

图像文件没有透明背景。使用Photoshop或GIMP或类似的东西,剪切图像并将其放在透明背景上。