如何在Android Studio中设置“按下”图像按钮?

时间:2014-11-10 14:03:05

标签: android sdk

我有一个ImageButton:

<ImageButton
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:id="@+id/btn_70s"
    android:src="@drawable/btn_70s"
    android:background="@null" /* Sets transparent BG for button image(PNG) */
 />

图像是“btn_70s”,如何点击ImageButton时如何设置图像的“按下”版本?

文档声明创建XML文件并将其放在drawable目录中:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_pressed="true"
       android:drawable="@drawable/button_pressed" /> <!-- pressed -->
 <item android:state_focused="true"
       android:drawable="@drawable/button_focused" /> <!-- focused -->
 <item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>

这对我说它会影响所有的ImageButtons而不是个人的。我会将它保存为每个按钮的单独XML(例如btn_70s_custom.xml),然后像下面一样使用它:

<ImageButton
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:id="@+id/btn_70s"
    android:src="@drawable/btn_70s"
    android:android:background="@drawable/btn_70s_custom"
 />   

只有问题,我不能使用@null来允许透明度。任何帮助都表示赞赏。

2 个答案:

答案 0 :(得分:1)

请查看问题的(可能的)解决方案:Make button background transparent using selector

并且为了记录,

  

这对我说它会影响所有的ImageButtons而不是个人的。我会将它保存为每个按钮的单独XML(例如btn_70s_custom.xml),然后像下面一样使用它:

不,它不会为所有按钮设置此主题,但仅适用于您指定使用此选择器的按钮。

希望这有帮助!

答案 1 :(得分:0)

您可以尝试selectableItemBackground

<ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="?attr/selectableItemBackground"/>