如何在不使用图像的情况下按下按钮状态

时间:2013-12-27 05:20:18

标签: android image button layout

我有一个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"/>

1 个答案:

答案 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,形状等。