Android使用shape属性绘制边框内渐变色

打印 上一主题 下一主题

主题 541|帖子 541|积分 1623

先上效果图

这是使用AndroidStudio绘制的带有渐变色的边框背景致

实现方法

项目中由于UI设计需求,必要给按钮、控件设置带有背景致效果的。以下是UI效果图。

这里我们使用shape属性来绘制背景效果。
shape属性介绍

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <shape
  3.     xmlns:android="http://schemas.android.com/apk/res/android"
  4.     android:shape=["rectangle" | "oval" | "line" | "ring"] > // 定义形状
  5.     <corners //圆角属性
  6.         android:radius="integer"
  7.         android:topLeftRadius="integer"
  8.         android:topRightRadius="integer"
  9.         android:bottomLeftRadius="integer"
  10.         android:bottomRightRadius="integer" />
  11.     <gradient //渐变属性
  12.         android:angle="integer"
  13.         android:centerX="integer"
  14.         android:centerY="integer"
  15.         android:centerColor="integer"
  16.         android:endColor="color"
  17.         android:gradientRadius="integer"
  18.         android:startColor="color"
  19.         android:type=["linear" | "radial" | "sweep"]
  20.         android:useLevel=["true" | "false"] />
  21.     <padding //边距属性
  22.         android:left="integer"
  23.         android:top="integer"
  24.         android:right="integer"
  25.         android:bottom="integer" />
  26.     <size //大小属性
  27.         android:width="integer"
  28.         android:height="integer" />
  29.     <solid //填充属性
  30.         android:color="color" />
  31.     <stroke //描边属性
  32.         android:width="integer"
  33.         android:color="color"
  34.         android:dashWidth="integer"
  35.         android:dashGap="integer" />
  36. </shape>
复制代码
Shape可以定义控件的一些展示效果,比方圆角,渐变,添补,描边,大小,边距;shape子标签就可以实现这些效果,shape子标签有下面几个属性:
corners,
gradient,
padding,
size,
solid,
stroke:
corners
(圆角)
代码

layer-list 是用来创建 图层列表的,通过它能创建出一些特殊的 drawable
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  3.     <!--顶部的渐变色-->
  4.     <item
  5.         android:gravity="top">
  6.         <shape
  7.             xmlns:android="http://schemas.android.com/apk/res/android"
  8.             android:shape="rectangle">
  9.             <gradient
  10.                 android:type="linear"
  11.                 android:angle="90"
  12.                 android:startColor="#0077b3c7"
  13.                 android:endColor="#9077b3c7"
  14.                 android:useLevel="false"/>
  15.             <size
  16.                 android:width="100dp"
  17.                 android:height="10dp" />
  18.         </shape>
  19.     </item>
  20.     <!--左侧的渐变色-->
  21.     <item
  22.         android:gravity="left">
  23.         <shape
  24.             xmlns:android="http://schemas.android.com/apk/res/android"
  25.             android:shape="rectangle">
  26.             <gradient
  27.                 android:type="linear"
  28.                 android:angle="0"
  29.                 android:startColor="#9077b3c7"
  30.                 android:endColor="#0077b3c7"
  31.                 android:useLevel="false"/>
  32.             <size
  33.                 android:width="10dp"
  34.                 android:height="100dp" />
  35.         </shape>
  36.     </item>
  37.     <!--右侧的渐变色-->
  38.     <item
  39.         android:gravity="right">
  40.         <shape
  41.             xmlns:android="http://schemas.android.com/apk/res/android">
  42.             <gradient
  43.                 android:type="linear"
  44.                 android:angle="180"
  45.                 android:startColor="#9077b3c7"
  46.                 android:endColor="#0077b3c7"
  47.                 android:useLevel="false"/>
  48.             <size
  49.                 android:width="10dp"
  50.                 android:height="100dp"/>
  51.         </shape>
  52.     </item>
  53.     <!--底部的渐变色-->
  54.     <item
  55.         android:gravity="bottom">
  56.         <shape
  57.             xmlns:android="http://schemas.android.com/apk/res/android">
  58.             <gradient
  59.                 android:type="linear"
  60.                 android:angle="90"
  61.                 android:centerX="0"
  62.                 android:centerY="0"
  63.                 android:startColor="#9077b3c7"
  64.                 android:endColor="#0077b3c7"
  65.                 android:useLevel="false"/>
  66.             <size
  67.                 android:width="100dp"
  68.                 android:height="10dp" />
  69.         </shape>
  70.     </item>
  71.     <!--边框线-->
  72.     <item>
  73.         <shape
  74.             xmlns:android="http://schemas.android.com/apk/res/android"
  75.             android:shape="rectangle">
  76.             <stroke
  77.                 android:width="1dp"
  78.                 android:color="@color/button_text_color"/>
  79.         </shape>
  80.     </item>
  81. </layer-list>
复制代码
绘制完毕后,直接到代码中引用即可
效果



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小秦哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表