gpt4 book ai didi

android - ImageButton onClick 改变颜色

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:37:47 27 4
gpt4 key购买 nike

我正在创建一个像这样的 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" />

我想实现一种方法,让按钮在单击/按下时闪烁或改变颜色,只是为了识别它已被单击。我知道我可以将背景引用为可绘制对象,并将 state_pressed 选择器设为某种颜色。我试图避免为可绘制对象中的每个按钮创建一个单独的 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(或任何 View ),只需将其设置为背景即可:

 <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" />

关于android - ImageButton onClick 改变颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17947552/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com