Android自定义TextView控件背景样式

       有时我们需要给控件添加自定义效果,采用自定义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(环形)
  1. <corners> 圆角属性:

    • android:radius:所有角的圆角半径
    • android:bottomLeftRadius:左下角圆角半径
    • android:bottomRightRadius:右下角圆角半径
    • android:topLeftRadius:左上角圆角半径
    • android:topRightRadius:右上角圆角半径
  2. <stroke> 描边属性:

    • android:width:描边宽度
    • android:color:描边颜色
    • android:dashWidth:虚线宽度
    • android:dashGap:虚线间隔
  3. <solid> 填充属性:

    • android:color:填充颜色,例如android:color="#FFFFFF"
  4. <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使用
  5. <padding> 内边距属性:

    • android:left:左内边距
    • android:top:上内边距
    • android:right:右内边距
    • android:bottom:下内边距
  6. <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中使用
  1. 实际应用场景:

    • 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效果中非常有用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值