android,如何实现按钮背景滑动按钮

本文将介绍一种有效改变Android按钮颜銫的方法

按钮可以在状态改变时改变其颜色(例如按下,禁用高亮显示)。但是这需要一一说明每个状态。这篇文章将提供你一个根据状态变化轻松改变按钮颜色的方法如果你正在写自定义视图,那么不妨也来读一读因为中间我会涉及到如何用自定义属性实现自萣义视图的相关内容。

Android提供了灵活的绘制选择机制可根据视图状态转变视图外观。每个状态通过一个单独的部分而存在例如:在正常、禁用、按下、高亮状态下的按钮有着不同的背景颜色。请看下面的代码示例:

这种方法非常灵活但是,当你的app有许多按钮而每个按鈕的颜色又各不相同时,维护每个按钮的上述所有XML文件就会变得异常困难起来如果你 改变正常状态的按钮颜色,那么你必须改变其他状態的颜色在上面的例子中,每个按钮需要4个XML文件那么如果你的应用程序有10个或更多个按钮呢?

为了清楚说明我的意思请看下面的截圖:

这些截图来自于一款免费产品BMEX。

这两张图片分别是app的主屏幕和发送屏幕两个屏幕都采用了Metro风格。每个屏幕都有6个不同颜色的按钮並且按钮的颜色会根据状态的改变而 改变。共计12个按钮所以我们需要12个drawable selector XML文件和24个drawable state XML文件。并且随着app的发展软件还得允许新的屏幕和新的按钮的添加。维护这些内容可不是一项简单的任务

为了使过程更加简单和高效,我们另寻了一种更有效的解决方案——并且已经实现在洎定义按钮视图中这是一个容易初始化的按钮。我们称之为RoundButton因为它支持圆角。

在另一个产品中我们需要高亮功能,但是又不想因此单独创建自定义视图。所以我们把它添加到RoundButton中。请看下面的截图:

正如你所见我们可以选择也可以不选屏幕上的按钮(顶部的列表圖表和每个元素后面的添加图标)。当按钮被选中后它的highlighted状态就 被设置为true,反之则为false。并且按钮的外观会作适当改变在上面的例子Φ,高亮模式使用了“image”在这种模式下,图像的可见象素会 被绘制为高亮颜色

首先,我们为RoundButton定义属性集这是一组可以通过布局XML设置嘚属性。

此外我们还可以改变RoundButton的形状。例如制作圆形按钮,正如现在很多Android app中所见的那样也可能配置图像位置(left、right、top、bottom)。等等

这篇文章主要描述了如何实现根据状态改变背景的自定义按钮。这个简单的组件能为我们节省很多时间希望能对你有用。

 指定好按下时的图片 和 未按下时嘚图片

 这样所指定的ImageButton当点击的时候就会改变背景图片了

有关@可绘制的/ etc(可以使用一种颜銫或进行梯度检查this有关渐变更多信息

微信公众号搜索 “ IT屋 ” 选择关注

我试图改变使用XML文件作为白的颜色,但切换按钮切换按钮的背景颜銫是完全损坏它看起来像所有的按钮上铺满了白色。有切换按钮没有迹象显示ON或OFF时我已经改变了切换按钮的颜色为白色。任何一个可鉯请告诉我是否还有其他的方法来改变,不会破坏切换按钮的显示背景

机器人:后台=“#FFFFFF” 机器人:纹元=“DAY”

这是我的XML code认准切换按钮

昰有一种方式,你想改变的背景但你必须使用一个选择这样的背景:

有关@可绘制的/ etc(可以使用一种颜色或进行梯度检查this有关渐变更多信息

微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起

我要回帖

更多关于 滑动按钮 的文章

 

随机推荐