Android UI--Shape和Selector
2017-03-02 15:23
399 查看
Android UI开发中,Shape定义控件的样式,Selector定义控件状态。比如定义圆角Button,矩形Button,Button按下后的变化响应等,下面介绍在XML文件中静态定义。
一、Shape属性
<solid>填充,就是背景色
<corners>边角形状,可以单独定义几个角的半径
<stroke>边框样式
<size> 大小
<padding>内容与边框的距离,实测无效……
<gradient>渐变样式,包括渐变两头的颜色、变化角度
定义一个bg_btn.xml文件
布局文件中添加一个Button,backgroud里应用该样式
效果如图
有点丑……
二、Selector
根据不同的选定状态来定义不同的现实效果
分为四大属性:
android:state_selected 是否选中
android:state_focused 是否获得焦点
android:state_pressed 是否按压
android:state_enabled 是否设置是否响应事件,指所有事件
同样,drawable文件夹下新建一个btn_color.xml,描述各种状态下按键的文字颜色
layout文件中,Button属性赋值
android:textColor="@drawable/btn_color"
可以看到几种状态下Button文字颜色变化
三、单位
Android开发中有dp、dip和px三个单位,定义分别是:
dp是Density-independent Pixels简写,密度无关
dip是Density Independent Pixels
px是Pixel的缩写,像素单位
前两者是一个概念,均是长度单位。按Google官方文档《支持多种屏幕》,开发布局中尽量使用dp单位,以适应不同分辨率(密度)的屏幕。相同dp的长度在不同分辨率屏幕上表现是一样大小,但改成px单位,显示大小会随屏幕分辨率变化。
一、Shape属性
<solid>填充,就是背景色
<corners>边角形状,可以单独定义几个角的半径
<stroke>边框样式
<size> 大小
<padding>内容与边框的距离,实测无效……
<gradient>渐变样式,包括渐变两头的颜色、变化角度
定义一个bg_btn.xml文件
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <!-- 在item属性中设置padding值也无效 --> <item android:top="0dp" android:right="2dp" android:left="2dp" > <shape android:shape="rectangle"> <!-- 填充 --> <solid android:color="#FF000000" /> <!-- 圆角 --> <corners android:topLeftRadius="10dip" android:topRightRadius="5dip" android:bottomLeftRadius="30dip" android:bottomRightRadius="5dip" /> <!-- 描边 就是边框--> <stroke android:width="2dp" android:color="#ff0000" /> <!-- 间隔,实测这样设置没用 --> <padding android:top="0dp" android:right="2dp" android:left="2dp"/> <!-- 这个样式的按键大小 --> <size android:height="50dp" android:width="180dp" /> </shape> </item> </selector>
布局文件中添加一个Button,backgroud里应用该样式
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/bg_btn" android:text="按键样式一" android:textColor="#ffffff"/> </LinearLayout>
效果如图
有点丑……
二、Selector
根据不同的选定状态来定义不同的现实效果
分为四大属性:
android:state_selected 是否选中
android:state_focused 是否获得焦点
android:state_pressed 是否按压
android:state_enabled 是否设置是否响应事件,指所有事件
同样,drawable文件夹下新建一个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="#ff0000" /> <!-- 禁止状态 --> <item android:state_enabled="false" android:color="#ccc" /> <!-- 接下状态 --> <item android:state_pressed="true" android:color="#00ff00" /> <!-- 聚焦状态 --> <item android:state_focused="true" android:color="#0000ff" /> </selector>
layout文件中,Button属性赋值
android:textColor="@drawable/btn_color"
可以看到几种状态下Button文字颜色变化
三、单位
Android开发中有dp、dip和px三个单位,定义分别是:
dp是Density-independent Pixels简写,密度无关
dip是Density Independent Pixels
px是Pixel的缩写,像素单位
前两者是一个概念,均是长度单位。按Google官方文档《支持多种屏幕》,开发布局中尽量使用dp单位,以适应不同分辨率(密度)的屏幕。相同dp的长度在不同分辨率屏幕上表现是一样大小,但改成px单位,显示大小会随屏幕分辨率变化。
相关文章推荐
- [Android UI] shape和selector的结合使用
- Android UI详解之 shape和selector和layer-list
- Android 关于shape和selector和layer-list(UI 设计)
- android - UI设计之shape和selector的结合使用
- Android UI之shape和selector和layer-list的使用
- (Android UI)shape、selector以及layer-list
- shape和selector是Android UI设计中经常用到的
- Android UI:shape和selector
- [转]Android开发教程:shape和selector的结合使用
- (android UI )shape详解,改变控件的默认样式(GradientDrawable)
- Android selector 的shape、gradient、stroke、corners 、state_pressed等属性嵌套写法
- Android开发教程:shape和selector的结合使用
- 【Android UI】 Shape详解 (GradientDrawable)
- Android Selector 与 Shape 基本用法
- Android 组件样式(UI) shape详解
- Android UI美化之Shape Drawable的使用
- Android-----使用Button特效 selector shape
- 【转】Android UI美化之Shape Drawable的使用