有的时候做应用需要点击按钮时文字颜色也跟着变,松开后又还原,目前发现两种解决方案:第一用图片,如果出现的地方比较多,那么图片的量就相当可观;第二,也就是本文讲到的。废话少说,先贴图片,再上代码。
正常效果:
按下效果:
先在values目录创建color.xml文件,在里面加入以下自定义颜色(注意不是用color标签)的代码:
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- <drawable name="red">#f00</drawable>
- <drawable name="green">#0f0</drawable>
- <drawable name="gray">#ccc</drawable>
- </resources>
<?xml version="1.0" encoding="utf-8"?> <resources> <drawable name="red">#f00</drawable> <drawable name="green">#0f0</drawable> <drawable name="gray">#ccc</drawable> </resources>
然后在res下新建drawable目录,里面新建btn_bg.xml和btn_color.xml文件,代码如下:
btn_bg.xml
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_window_focused="false" android:state_enabled="true"
- android:drawable="@drawable/btn_test_normal" />
- <item android:state_enabled="false" android:drawable="@drawable/btn_test_normal" />
- <item android:state_pressed="true" android:drawable="@drawable/btn_test_press" />
- <item android:state_focused="true" android:drawable="@drawable/btn_test_normal" />
- </selector>
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/btn_test_normal" /> <item android:state_enabled="false" android:drawable="@drawable/btn_test_normal" /> <item android:state_pressed="true" android:drawable="@drawable/btn_test_press" /> <item android:state_focused="true" android:drawable="@drawable/btn_test_normal" /> </selector>
btn_color.xml
- <?xml version="1.0" encoding="utf-8"?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_focused="false" android:state_enabled="true" android:state_pressed="false"
- android:color="@drawable/red" />
- <item android:state_enabled="false" android:color="@drawable/gray" />
- <item android:state_pressed="true" android:color="@drawable/green" />
- <item android:state_focused="true" android:color="@drawable/red" />
- </selector>
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="false" android:state_enabled="true" android:state_pressed="false" android:color="@drawable/red" /> <item android:state_enabled="false" android:color="@drawable/gray" /> <item android:state_pressed="true" android:color="@drawable/green" /> <item android:state_focused="true" android:color="@drawable/red" /> </selector>
最后是测试用的布局文件:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="@android:color/white"
- >
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="按下文字会变效果"
- android:textColor="@drawable/btn_color"
- android:background="@drawable/btn_bg"
- />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="按钮被禁用"
- android:enabled="false"
- android:textColor="@drawable/btn_color"
- android:background="@drawable/btn_bg"
- />
- </LinearLayout>
相关推荐
在Android开发中,有时我们希望实现独特的用户交互效果来提升应用的用户体验,比如Windows 8磁贴风格的按钮点击效果。这个"Android 按钮点击WIN8 磁贴效果.zip"源码资源提供了这样的功能,使得Android的按钮在被点击...
要实现点击按钮时背景色和文字颜色变化,我们可以创建两个样式:一个是默认状态下的样式,另一个是按钮被按下的样式。以下是一个示例: ```xml <!-- styles.xml --> <style name="CustomButton" parent="Widget....
本教程将详细讲解如何实现Android应用中的文字和按钮点击后颜色变化的两种方法。 ### 一、字体点击变色 #### 1. 使用`ColorStateList` `ColorStateList`是Android中用于处理不同状态下的颜色选择器,我们可以定义...
2. **绘图和动画**:在自定义的Button类中,你需要重写`onDraw()`方法,以便在按钮被点击时改变其背景。这可能包括更改颜色、添加阴影或渐变等。此外,可以使用`ObjectAnimator`或者`ValueAnimator`来创建平滑的动画...
在Android开发中,实现Windows 8磁贴效果的按钮点击动画可以为用户界面带来独特的视觉体验,提升应用的交互性和吸引力。本项目旨在演示如何在Android应用中复现Windows 8磁贴那种平滑、动态的变换效果。下面将详细...
"Android Button按钮点击背景和文字变化操作" Android Button按钮点击背景和文字变化操作是Android开发中一个常见的问题。Android原生的按钮点击状态是有变化的,但是如果是自己加了一个.png格式的图片为背景色,...
这种自定义的字体颜色变化效果能够提升用户体验,让用户更清晰地感知到操作是否成功。 需要注意的是,Android Studio可能会提示`<drawable>`标签不适用于`android:color`属性,这是因为在Android API 21及以上版本...
Android Studio 在xml文件中设置界面布局1、xml文件中给输入框editText修改下划线颜色2、设置button按钮为圆角及修改按钮颜色3、运用约束布局时预览效果和运行效果不一致 写一写今天困扰我很久的问题:如何给...
在 Android 开发中,点击按钮使文字变色是一种常见的交互效果,通过点击按钮,可以使按钮中的文字改变颜色,从而提供更好的用户体验。下面,我们将详细介绍实现这种效果的技术细节。 标题解释 Android 点击按钮使...
在一些场景下,我们可能需要对`TextView`中的特定部分文字进行颜色变化,甚至为这部分文字添加点击事件,以实现更复杂的用户交互。下面我们将详细探讨如何实现这些功能。 ### 1. 设置指定部分文字颜色 `TextView`...
本篇将深入探讨如何通过XML来定制Android的Selector,实现按钮的点击、按下等状态下的背景颜色和字体颜色变化,以及RadioButton的特殊样式,如单条线、圆形边框等。 首先,理解Selector的基本结构。Selector是基于...
在Android开发中,按钮...综上所述,Android按钮的点击效果和兼容性问题涉及到多个方面,包括样式定制、动画实现、事件监听以及版本适配。熟练掌握这些知识点,能帮助开发者构建更加丰富、用户体验良好的Android应用。
在Android开发中,Button控件是用户界面中最常见的元素之一,用于接收用户的点击事件并触发相应的操作。本文将深入探讨Button与点击监听器的相关知识点,帮助开发者更好地理解和使用这一核心组件。 首先,Button是...
这个项目中的点击效果模拟了Windows 8磁贴的动态变换,可能包括颜色变化、大小调整或位置移动等,以增加用户的视觉反馈。 2. **自定义View和动画** 要实现Windows 8磁贴效果,开发者需要创建自定义的Button类或者...
Button的点击效果,如颜色变化、振动反馈等,可以通过设置StateListDrawable作为背景来实现。StateListDrawable可以根据View的状态显示不同的图像,例如按下状态、默认状态等。 此外,Button的点击事件还可以与数据...
在Android开发中,Shape是XML布局文件中定义的一种图形元素,通常用于创建自定义的背景、按钮或者其他UI组件。它可以包含各种形状(如矩形、圆形、线等),并可以通过填充色、边框色以及边框宽度来定制样式。本教程...
在本主题中,我们将深入探讨Android Studio如何实现颜色变化和多级菜单动画效果。 首先,Android Studio内建的布局编辑器允许开发者直观地设计用户界面,包括菜单项。菜单通常在`res/menu`目录下定义,通过XML文件...
监听器中的`onClick`方法被调用时,会执行`changeButtonColor`方法,该方法会生成一个随机颜色并设置为按钮的背景色,从而实现每次点击按钮时颜色变化的效果。 这个简单的示例展示了Android中按钮的基本使用和事件...
为了实现按钮点击时的颜色变化,我们可以在同一个形状资源文件中添加`<selector>`标签,定义不同状态下的颜色: ```xml <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android...
在Android开发中,有时我们需要根据应用的运行状态或者用户的交互来动态改变图片的颜色。这个功能在许多场景下都非常实用,比如主题切换、夜间模式切换或者是按钮的状态变化等。标题所提及的“android动态改变图片...