我是靠谱客的博主 称心小兔子,这篇文章主要介绍Android Button按钮点击背景和文字变化操作,现在分享给大家,希望可以做个参考。

Android 原生的按钮点击状态是有变化的,但是如果是自己加了一个.png格式的图片为背景色,按钮点击就不会有任何效果,为了达到点击按钮有一闪的效果,我们就需要准备两张图进行切换, 而且文字也要变色,老规矩废话不多说直接上代码:

按钮背景图片放在 drawable/background_button.xml

复制代码
1
2
3
4
5
6
7
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/bg_press" android:state_pressed="true"/> <item android:drawable="@drawable/bg_normal" android:state_enabled="true"/> <item android:drawable="@drawable/bg_normal"/> </selector>

准备两张图片一张为bg_press.png, 一张为 bg_normal.png。

在需要变化的按钮中设置:

复制代码
1
2
3
4
5
6
7
8
9
10
11
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="50dp" android:focusable="false" android:gravity="center" android:textSize="24px" android:text="@string/str_tethering_modify" android:background="@drawable/background_button" />

这有背景色变化就解决完了,下面到按钮上的文字了,现在点击按钮按钮上的文字是没有变化的,为了达到按钮文字颜色的变化我们再新建一个xml文件。

按钮颜色变化 drawable/button_color.xml

复制代码
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#975508"/> <item android:state_focused="false" android:state_pressed="false" android:color="#E5960E"/> <item android:state_focused="true" android:color="#975508"/> <item android:state_focused="false" android:color="#E5960E"/> </selector>

加入到我们的按钮textColor中

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="50dp" android:focusable="false" android:gravity="center" android:textSize="24px" android:textColor="@drawable/button_color" android:text="@string/str_tethering_modify" android:background="@drawable/background_button" />

这样直接使用背景和文字就都有点击效果啦,但是如果有这样一个需求,在某些条件下需要再设置按钮文字的颜色button.setTextColor(color),这样设置完后,发现我们按钮上文字点击又没有变化了,我之前试着直接 button.setTextColor(R.drawable.button_color);发现这样是没有任何用处的。这样就需要使用 ColorStateList 来解决,顾名思义,就是定义颜色的状态列表,通过监听按钮不同状态来设置不同的颜色,

老规矩,废话不多说了,直接贴代码:

复制代码
1
2
3
4
5
6
7
8
9
10
/** * 按钮点击颜色变化 */ private ColorStateList colorStateList; colorStateList = (ColorStateList)getResources().getColorStateList(R.drawable.button_color); if(xxx){ button.setTextColor(Color.White); }else{ button.setTextColor(colorStateList); }

这样就完美解决了按钮点击状态的变化啦。

补充知识:android studio设置按钮和背景融为一体也就是按钮去除阴影

复制代码
1
2
3
4
5
6
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_send" android:onClick="sendMessage" style="?android:attr/borderlessButtonStyle" />

以上这篇Android Button按钮点击背景和文字变化操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持靠谱客。

最后

以上就是称心小兔子最近收集整理的关于Android Button按钮点击背景和文字变化操作的全部内容,更多相关Android内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(103)

评论列表共有 0 条评论

立即
投稿
返回
顶部