当然除了使用drawable这样的图片外今天谈下自定义图形shape的方法,对于Button控件Android上支持以下几种属性shape、gradient、stroke、corners等。 ? 我们就以目前系统的Button的selector为例说下: ? 对于上面,这条shape的定义,分别为渐变,在gradient中startColor属性为开始的颜色,endColor为渐变结束的颜色,下面的angle是角度。接下来是stroke可以理解为边缘,corners为拐角这里radius属性为半径,最后是相对位置属性padding。 ?对于一个Button完整的定义可以为: ? 注意!提示大家,以上几个item的区别主要是体现在state_pressed按下或state_focused获得焦点时,当当来判断显示什么类型,而没有state_xxx属性的item可以看作是常规状态下。 ? <?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> ? Elements: <selector> 必须。必须是根元素。包含一个或多个<item>元素。 ??????????????Attributes: ??????????????????xmlns:android ????????????????????????????String,必须。定义XML的命名空间,必须是 ????????????????????????????“http://schemas.android.com/apk/res/android”. ????<item> ??????????????定义特定状态的color,通过它的特性指定。必须是<selector>的子元素。 ??????????????Attributes: ??????????????????android:color ????????????????????????????16进制颜色。必须。这个颜色由RGB值指定,可带Alpha。 ????????????????????????????这个值必须以“#”开头,后面跟随Alpha-Red-Green-Blue信息: l???#RGB l???#ARGB l???#RRGGBB l???#AARRGGBB ????android:state_pressed Boolean。“true”表示按下状态使用(例如按钮按下);“false”表示非按下状态使用。 ??????????????????android:state_focused Boolean。“true”表示聚焦状态使用(例如使用滚动球/D-pad聚焦Button);“false”表示非聚焦状态使用。 ??????????????????android:state_selected Boolean。“true”表示选中状态使用(例如Tab打开);“false”表示非选中状态使用。 ??????????????????android:state_checkable Boolean。“true”表示可勾选状态时使用;“false”表示非可勾选状态使用。(只对能切换可勾选—非可勾选的构件有用。) ??????????????????android:state_checked ????????????????????????????Boolean。“true”表示勾选状态使用;“false”表示非勾选状态使用。 ??????????????????android:state_enabled Boolean。“true”表示可用状态使用(能接收触摸/点击事件);“false”表示不可用状态使用。 ??????????????????android:window_focused Boolean。“true”表示应用程序窗口有焦点时使用(应用程序在前台);“false”表示无焦点时使用(例如Notification栏拉下或对话框显示)。 注意:记住一点,StateList中第一个匹配当前状态的item会被使用。因此,如果第一个item没有任何状态特性的话,那么它将每次都被使用,这也是为什么默认的值必须总是在最后(如下面的例子所示)。 ? Examples: 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> ? ????这个Layout XML会应用ColorStateList到一个View上: <Button ????android:layout_width="fill_parent" ????android:layout_height="wrap_content" ????android:text="@string/button_text" ????android:textColor="@color/button_text" />
详细解决方案
Android-应用Button特效 selector+shape
热度:450 发布时间:2016-05-01 16:22:48.0
相关解决方案
- android 读取byte[]中的元素解决方案
- android 标题栏兑现方式
- android 中Activity向BroadcastReceiver发送数据,该怎么解决
- Android 4.0 为什么模拟器老是提示小弟我谷歌拼音输入法已停止
- android:getSharedPreferences() 这是哪个类的方法解决思路
- android 怎么判断一个程序是否联网
- android 大量数据按周分组,该如何解决
- android RadioButton如何设置默认选中
- ksoap2-android-这个包,连接webService怎么设置超时
- android 怎么重新设置锚点
- android UI界面设计解决方案
- android 图片对象获取的有关问题
- android 怎么调用淘宝支付宝接口
- Android 沿袭InputMethodService自定义输入法
- android 关于服务连接的疑义
- android 两个activity如何通信
- android 怎么实现对view的放大和缩小
- android 教程解决方法
- android ID,该如何处理
- 准备复习2-3个月,看java+android,请问有经验者,怎么看效果最好》
- android UI线程与AsyncTask的有关问题
- android(java)中的java.net能不能和c#的system.net.sockets进行tcp通信,该如何解决
- android ListView 中的onItemClick Intent 没法跳转
- android(java) 中文乱码的有关问题
- c#c++,android,ios(iphone),php,java视屏课程 散分
- Button OnClientClick中设disabled=true后,还会不会施行OnClick中的代码
- 部类“Button”的控件“Button2”必须放在具有 runat=server 的窗体标记内
- 请问一个后台获取input type="button"的value的有关问题
- HTML控件<button>的点击事件如何用
- 请问一个jquery 实现input type="button"的背景图片变换