在开发项目中、对图片处理千奇百怪,最常见就是向 <EditText />组件,需要一些圆角,还有描成不同颜色的边!接下来简单写下、在开发中常用的Shape布局..
布局文件:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
</shape>
一:填充
<solid android:color="#aa00bb" />
表示填充组件内部颜色。
二:圆角
切换圆角有俩种方式,
1.
<corners android:radius="10dp"/>
一段代码搞定所有4个角,都是相同! 10dp为度数。
2.
<corners
android:topLeftRadius="10dp"
android:topRightRadius="20dp"
android:bottomLeftRadius="60dp"
android:bottomRightRadius="10dp"
/>
分别为: 上左角 - 上右角 -下左角 - 下右角
度数怎么计算、还不太清楚/ 一般用的最多是 5dp、10dp!
技巧:如果你把4个角设成为90的话,那么改图片是一个圆!
三:描边
<stroke
android:width="1dp"
android:color="#000000"
/>
以上表示,那是边的宽度为1dp,颜色黑色.
有时候,我们描边需要虚线,怎么办?
这里还有2个属性: android:dashWidth=" " 表示:虚线的宽度 ”---“ android:dashGap=" "表示虚线与虚线之间的宽度
技巧: android:dashWidth="1dp" android:dashGap="1dp" 都设成1dp,该控件的边为一圈点!
效果:
总结:
shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector。可以这样说,shape和selector在美化控件中的作用是至关重要的。
1.Shape
简介
作用:XML中定义的几何形状
位置:res/drawable/文件的名称.xml
使用的方法:
Java代码中:R.drawable.文件的名称
XML中:android:background="@drawable/文件的名称"
属性:
<shape>中子节点的常用属性:
<gradient> 渐变
android:startColor 起始颜色
android:endColor 结束颜色
android:angle 渐变角度,0从上到下,90表示从左到右,数值为45的整数倍默认为0;
android:type 渐变的样式 liner线性渐变 radial环形渐变 sweep
<solid > 填充
android:color 填充的颜色
<stroke > 描边
android:width 描边的宽度
android:color 描边的颜色
android:dashWidth 表示'-'横线的宽度
android:dashGap 表示'-'横线之间的距离
<corners > 圆角
android:radius 圆角的半径 值越大角越圆
android:topRightRadius 右上圆角半径
android:bottomLeftRadius 右下圆角角半径
android:topLeftRadius 左上圆角半径
android:bottomRightRadius 左下圆角半径
2.Selector
简介
位置:res/drawable/文件的名称.xml
使用的方法:
Java代码中:R.drawable.文件的名称
XML中:android:background="@drawable/文件的名称"
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<shape>
<gradient android:angle="270" android:endColor="#99BD4C"
android:startColor="#A5D245" />
<size android:height="60dp" android:width="320dp" />
<corners android:radius="8dp" />
</shape>
</item>
<item android:state_pressed="true">
<shape>
<gradient android:angle="270" android:endColor="#99BD4C"
android:startColor="#A5D245"/>
<size android:height="60dp" android:width="320dp" />
<corners android:radius="8dp" />
</shape>
</item>
<item>
<shape>
<gradient android:angle="270" android:endColor="#A8C3B0"
android:startColor="#C6CFCE"/>
<size android:height="60dp" android:width="320dp" />
<corners android:radius="8dp" />
</shape>
</item>
</selector>