1. 前言
我们知道开发中很多图片可以用 shape 代替,但是当项目过大,功能增多,我们会发现 Drawable 文件夹下面的 .xml 文件越来越多,比如下
我们会发现,很多文件都类似,只是颜色 大小等不一样而已,所以每次碰到用到 shape 的地方还得新建 shape .xml 。这样既麻烦并且会造成 drawable .xml文件过多。
所以我希望项目中只建立几个典型常用的 shape 种类,然后通过 java 代码控制颜色或者大小、倒角、渐变方向颜色。
我抽取了几个项目中常用的 shape 样式,分别
- 纯矩形纯色。【rect+solid】,可以修改颜色
- 倒角矩形纯色。【rect+solid+corner,可以修改矩形颜色和倒角大小
- 倒角矩形描边纯色。【rect+solid+corner+stroke】,可以修改矩形颜色,倒圆角大小,描边颜色和大小
- 矩形渐变。【rect+gradient】矩形线性渐变,可以修改渐变颜色及顺序
做了个demo效果如下
2.代码
拿上面demo举例,将上面四个经典常用的 shape 建立出来,都比较简单,只贴 bg_rect_corner_stroke
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<solid android:color="@android:color/holo_blue_dark" />
<corners android:radius="6dp" />
<stroke
android:color="@android:color/holo_orange_dark"
android:width="1.5dp" />
</shape>