我有一个ImageButton,我只有一个png图标,如截图所示。现在我希望它没有另一个图像的“按下状态”。这可以通过使用颜色选择器来完成,如果是,如何使用透明的东西来完成,这样图像只保留,但会有两个按下状态?
代码:
<ImageButton
android:id="@+id/syncbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="3dip"
android:background="@android:color/transparent"
android:gravity="center"
android:text="Sync"
android:src="@drawable/sync"/>
答案 0 :(得分:1)
你已经走上正轨了。
为您的背景使用自定义drawable而不是ImageButton的“透明”:
<ImageButton
android:id="@+id/syncbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginTop="3dip"
android:background="@drawable/my_highlight_drawable"
android:gravity="center"
android:text="Sync"
android:src="@drawable/sync"/>
my_highlight_drawable
只是一个颜色选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@color/my_pressed_highlight_color"
android:state_pressed="true" />
<item android:drawable="@android:color/transparent" />
</selector>
基本上你可以将ImageButton视为普通按钮,但有两个图像层
android:background
定义底层,android:src
定义顶层。您可以在两个图层上使用所有相同的可绘制类型,如位图,选择器,Nine-Patch,形状等。