繁体   English   中英

ImageButton onClick改变颜色

[英]ImageButton onClick change color

我正在创建一个像这样的ImageButton:

          <ImageButton
                android:id="@+id/one"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="0.333"
                android:adjustViewBounds="true"
                android:background="@null"
                android:contentDescription="@string/description_image_button_one"
                android:scaleType="fitEnd"
                android:src="@drawable/dialpad_1" />

我想实现一种方法,让按钮闪烁或点击/按下时改变颜色只是为了识别它被点击了。 我知道我可以将背景引用为一个drawable,其中state_pressed选择器为某种颜色。 我试图避免为drawable中的每个按钮创建一个单独的xml文件。 如果不创建所有额外的xml文件,最好的方法是什么?

您需要为按钮背景创建自定义可绘制选择器。

此文件将存在于您的XML文件夹中,看起来像这样(每个元素描述处于不同选定状态时的按钮背景):

文件名为:res / drawable / my_custom_selector.xml

<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/blue_button_on"
        android:state_focused="true"
        android:state_pressed="true"/>
    <item
        android:drawable="@drawable/blue_button_on"
        android:state_focused="false"
        android:state_pressed="true"/>
    <item
        android:drawable="@drawable/blue_button_off"
        android:state_focused="true"
        android:state_pressed="false"/>
    <item
        android:drawable="@drawable/blue_button_off"
        android:state_focused="false"
        android:state_pressed="false"/>
</selector>

然后将该背景应用于ImageView(或任何视图),只需将其设置为背景:

 <ImageButton
                android:id="@+id/one"
                android:layout_width="0dip"
                android:layout_height="wrap_content"
                android:layout_weight="0.333"
                android:adjustViewBounds="true"
                android:background="@drawable/my_custom_selector"
                android:contentDescription="@string/description_image_button_one"
                android:scaleType="fitEnd"
                android:src="@drawable/dialpad_1" />

您试图避免的XML文件是实现您想要的简单方法。 另一种方法是使用onClickListener代码,我认为这是一项需要更多工作的任务。

您应该使用XML文件,否则不执行任何操作.Android为按下的按钮提供默认颜色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM