Android UI--Shape和Selector
来源:互联网 发布:c语言必读书籍 编辑:程序博客网 时间:2024/05/16 00:47
Android UI开发中,Shape定义控件的样式,Selector定义控件状态。比如定义圆角Button,矩形Button,Button按下后的变化响应等,下面介绍在XML文件中静态定义。
一、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单位,显示大小会随屏幕分辨率变化。
0 0
- Android UI:shape和selector
- Android UI--Shape和Selector
- Android:shape和selector
- Android Selector和Shape
- Android Selector和Shape
- Android UI详解之 shape和selector和layer-list
- android UI shape和selector和layer-list 详解
- Android:shape和selector使用
- Android UI之shape和selector和layer-list的使用
- Android UI shape、selector和layer-list的(详细说明)
- android shape和selector和layer-list
- Android中 shape和selector的使用
- Android Selector和Shape的使用方法
- android shape和selector共用按钮样式
- [Android]shape和selector的结合使用
- Android中Shape 和 Selector的用法
- Android Selector和Shape的组合
- android关于selector和shape的使用
- 56. Merge Intervals
- Android程序员学PHP开发(34)-ThinkPHP5.0(6)自动生成-PhpStorm
- Android自定义View(ImageView画圆)
- 关于[Ljava.lang.String;不能转换为java.lang.String错误
- cocos2d-x 3.X 接收图片 base64 转码显示
- Android UI--Shape和Selector
- redis常用运维命令以及需要注意的参数
- 获取构造器
- 网页基础布局
- java collection
- 寻找和杀掉僵尸进程
- python函数学习enumerate
- 构建互联网高性能WEB系统
- 【Android代码片段02】将图片保存在本地根目录下