有时我们需要给控件添加自定义效果,采用自定义xml样式方式,极为方便,灵活可设置。
下面说明一下关于自定义控件背景样式说明。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<!-- 背景色 -->
<solid android:color="#FFFFFF" />
<!-- 边框宽度和颜色 -->
<stroke
android:width="2dp"
android:color="#FF0000FF" />
<!-- 内边距 -->
<padding
android:left="8dp"
android:top="8dp"
android:right="8dp"
android:bottom="8dp" />
<!-- 圆角 -->
<corners android:radius="4dp" />
</shape>
Shape中所有属性说明:
-
- android:shape:定义形状类型,可选值:
- rectangle(矩形,默认值)
- oval(椭圆)
- line(线条)
- ring(环形)
- android:shape:定义形状类型,可选值:
-
<corners>圆角属性:- android:radius:所有角的圆角半径
- android:bottomLeftRadius:左下角圆角半径
- android:bottomRightRadius:右下角圆角半径
- android:topLeftRadius:左上角圆角半径
- android:topRightRadius:右上角圆角半径
-
<stroke>描边属性:- android:width:描边宽度
- android:color:描边颜色
- android:dashWidth:虚线宽度
- android:dashGap:虚线间隔
-
<solid>填充属性:- android:color:填充颜色,例如android:color="#FFFFFF"
-
<gradient>渐变属性(与solid互斥):- android:angle:渐变角度(0、45、90、135、180、225、270、315)
- android:startColor:起始颜色
- android:centerColor:中间颜色
- android:endColor:结束颜色
- android:gradientRadius:渐变半径(用于radial渐变)
- android:type:渐变类型
- linear(线性渐变)
- radial(径向渐变)
- sweep(扫描渐变)
- android:useLevel:是否作为LevelListDrawable使用
-
<padding>内边距属性:- android:left:左内边距
- android:top:上内边距
- android:right:右内边距
- android:bottom:下内边距
-
<size>尺寸属性:- android:width:宽度
- android:height:高度
8.Shape标签内的其他属性
- android:thickness:用于ring形状时,环的厚度
- android:innerRadius:用于ring形状时,内环半径
- android:innerRadiusRatio:用于ring形状时,内环半径比例(浮点数,默认为3,表示内环半径为宽度的1/3)
- android:thicknessRatio:用于ring形状时,环的厚度比例(浮点数,默认为9,表示厚度为宽度的1/9)
- android:dither:是否启用抖动(true/false),默认为true。用于在低质量屏幕上改善颜色渐变效果
-
- dither(抖动):当设备屏幕色彩深度较低时,通过抖动可以使颜色过渡更平滑
- innerRadius和innerRadiusRatio:如果同时设置,innerRadius优先级更高
- thickness和thicknessRatio:如果同时设置,thickness优先级更高
- centerX/centerY:仅在radial渐变类型中有效
- useLevel:通常设置为false,除非要在LevelListDrawable中使用
-
实际应用场景:
- thickness:用于创建进度条、加载动画等环形UI
- dither:在低端设备上改善渐变效果
- innerRadiusRatio/thicknessRatio:用于创建自适应大小的环形形状
在drawable中新建xml文件,命名为:textview_backstyle.xml,双击该xml文件,在内部添加以下内容,用于设置边框颜色、圆角、宽度、高度等,
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 背景色 -->
<solid android:color="#FFFFFF" />
<!-- 边框宽度和颜色 -->
<stroke
android:width="2dp"
android:color="#F2DDDDDD" />
<!-- 内边距 -->
<padding
android:left="16dp"
android:top="16dp"
android:right="16dp"
android:bottom="16dp" />
<!-- 圆角 -->
<corners android:radius="10dp" />
<size android:height="90dp" android:width="600dp"/>
</shape>
RecylerView内控件添加边框后的效果如下图,

这些属性组合使用可以创建出丰富的视觉效果,特别是在自定义View效果中非常有用。
1973

被折叠的 条评论
为什么被折叠?



