`

ColorStateList按钮文字变色

阅读更多
Windows平台VC,对于不同的按钮状态,采用不同的颜色显示文字,实现起来比较复杂,一般都得自绘按钮。但是Android里面实现起来非常方便。

我们首先添加一个ColorStateList资源XML文件,XML文件保存在res/color/button_text.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="#ffff0000"/> <!-- pressed -->
    <item android:state_focused="true"
          android:color="#ff0000ff"/> <!-- focused -->
    <item android:color="#ff000000"/> <!-- default -->
</selector>

Button btn=(Button)findViewById(R.id.btn);
Resources resource=(Resources)getBaseContext().getResources(); 
ColorStateList csl=(ColorStateList)resource.getColorStateList(R.color.button_text);
if(csl!=null){
     btn.setTextColor(color_state_list);//设置按钮文字颜色
}


或者也可以这样:
XmlResourceParser xpp=Resources.getSystem().getXml(R.color.button_text); 
try {
     ColorStateList csl= ColorStateList.createFromXml(getResources(),xpp);
     btn.setTextColor(csl);
} catch (Exception e) {
     // TODO: handle exception
}


最后附上所有可能出现的状态:
 <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
        <item
            android:color="hex_color"
            android:state_pressed=["true" | "false"]
            android:state_focused=["true" | "false"]
            android:state_selected=["true" | "false"]
            android:state_active=["true" | "false"]
            android:state_checkable=["true" | "false"]
            android:state_checked=["true" | "false"]
            android:state_enabled=["true" | "false"]
            android:state_window_focused=["true" | "false"] />
    </selector>



  • 大小: 33.7 KB
分享到:
评论

相关推荐

    android点击按钮使得文字变色

    Android 点击按钮使文字变色技术详解 在 Android 开发中,点击按钮使文字变色是一种常见的交互效果,通过点击按钮,可以使按钮中的文字改变颜色,从而提供更好的用户体验。下面,我们将详细介绍实现这种效果的技术...

    pb按钮变色效果

    "pb按钮变色效果"是一个专为提升UI视觉吸引力和交互反馈设计的功能。这个功能使得按钮在不同的状态下呈现出不同的颜色,以传达不同的信息或者引导用户进行特定操作。 在用户界面上,按钮通常是用于触发某些动作或...

    画面切换按钮背景变色.emtp

    画面切换按钮背景变色,当画面切换按钮选择当前页画面,按钮背景变色锁定,提示在当前页面,其他页面按钮颜色为灰色,当前页按钮为高亮色

    简单的鼠标移上去文字变色

    `简单的鼠标移上去文字变色简单的鼠标移上去文字变色简单的鼠标移上去文字变色简单的鼠标移上去文字变色简单的鼠标移上去文字变色简单的鼠标移上去文字变色简单的鼠标移上去文字变色简单的鼠标移上去文字变色简单的...

    按钮慢慢变色.rar

    "按钮慢慢变色"这一主题涉及到的是交互设计中的渐变动画效果,通常用于按钮的激活、悬停或者状态改变时,为用户提供视觉反馈。这种效果可以增强用户对操作的认知,使得用户界面更加生动且易于理解。 在Web开发中,...

    js 特效 html 特效 按钮慢慢变色

    js 特效 html 特效 按钮慢慢变色

    自绘按钮(渐变色效果)

    在编程领域,自绘按钮是一种常见的用户界面(UI)定制技术。通过自绘,开发者可以创建具有独特视觉效果和交互体验的控件,比如本文提到的“自绘按钮(渐变色效果)”。这种技术主要应用于图形用户界面的开发,如...

    鼠标经过文字变色

    在网页设计中,“鼠标经过文字变色”是一种常见的用户界面优化手段,它可以提升用户体验,使页面更加生动和吸引人。这种效果通常通过CSS或JavaScript来实现。 #### CSS方法 使用CSS的`:hover`伪类可以轻松地为鼠标...

    css3鼠标悬停按钮弹性文字切换动画特效

    这个特效不仅使按钮的文字在鼠标悬停时动态改变,而且按钮的背景和文字颜色也会随着交互而变化,从而为用户界面增添生动的交互体验。 首先,CSS3的`transform`属性是实现此特效的关键。`transform`允许我们对元素...

    鼠标经过变色按钮 鼠标经过变色按钮

    在网页设计或者用户界面开发中,"鼠标经过变色按钮"是一种常见的交互设计技术,它增强了用户的视觉体验和操作感知。这种技术通过CSS(层叠样式表)和JavaScript实现,当用户将鼠标悬停在按钮上时,按钮的颜色或样式...

    js文字特效制作js文字闪烁与文字变色效果

    文字变色则可以通过修改元素的`color`属性来完成。如果想要实现颜色循环变化,可以预先定义一个颜色数组,然后在每次更新时选择下一个颜色。同样,也可以利用定时器来实现周期性的颜色切换。 接下来,我们结合给定...

    android 点击变色字体或按钮

    按钮的点击变色通常通过设置`Button`的背景来实现,同样可以使用`ColorStateList`。创建一个XML资源文件(如`button_colors.xml`),并在`Button`的`android:background`属性中引用: ```xml android:id="@+id/...

    js 特效 html 特效 鼠标经过文字变色

    js 特效 html 特效 鼠标经过文字变色 js 特效 html 特效 鼠标经过文字变色

    自定义View-文字变色效果

    本主题聚焦于“自定义View-文字变色效果”,这是一个常见的需求,尤其是在设计富有动态感和交互性的用户界面时。下面我们将深入探讨如何实现这样的功能。 首先,我们从创建一个新的View类开始。这个类通常会继承自`...

    CSS3 jQuery拨动开关按钮网页变色效果

    CSS3 jQuery实现的一款拨动开关按钮网页变色效果,这款效果看上去简单,但做起来并不容易,引入了多个JS封装类和jquery插件,实现的效果是动态的,单击开关按钮中的圆点,开关会被拨动到另一侧,此时网页背景颜色...

    QT 根据点击状态可变色圆形按钮

    标题提到的“QT 根据点击状态可变色圆形按钮”就是一种利用QT自定义控件特性实现的特殊按钮,它可以根据用户的点击状态改变颜色,以提供更好的交互体验。 要实现这样的功能,首先我们需要了解QT中的`QPushButton`类...

    Qt自己做的选项卡+按钮变色

    3. 按钮变色: Qt提供了方便的方法来改变按钮的颜色。我们可以在按钮被点击时改变其颜色,然后在按钮失去焦点时恢复原色。这里需要用到QPalette和Qt::ButtonRole: ```cpp void changeButtonColor(QPushButton *...

    MFC按钮自绘变色,提示,鼠标滑过变色等

    大家一般认为MFC的按钮控件的使用很普通很简单,无非就是个单击事件。我不否认这个事实,我想说的是能否在这个普通简单上稍微有点创意呢?大家普通简单,你有点创意特别,那么你就超过了很多人了。这个程序的特点...

    java swing JButton 圆角按钮 鼠标监听变色(有注释简单易懂可直接运行)

    java swing JButton 圆角按钮 带变色(有注释,简单易懂适用于初学者 程序可直接运行)

    javascript经典特效---文字不停变色.rar

    在JavaScript的世界里,实现“文字不停变色”的特效是一种常见的动态视觉效果,它可以吸引用户注意力,增加网页的交互性。这个“javascript经典特效---文字不停变色.rar”压缩包文件包含了一个名为“文字不停变色....

Global site tag (gtag.js) - Google Analytics