学而实习之 不亦乐乎

Android Drawable资源之ShapeDrawable

2020-07-14 21:01:13

ShapeDrawable用于定义一个基本的几何图形(如矩形、圆形、线条等),定义ShapeDrawable的XML文件的根元素是<shape>
优点:相对于传统图片来说,使用shape可以减少资源占用,减少安装包大小,还能够很好地适配不同尺寸的手机。

定义如下:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
	android:shape=["rectangle" | "oval"] | "line"] | "ring"]>
	
	<!-- 定义几何图形四个角的弧度 -->
	<corners
        android:radius="integer"
        android:topLeftRadius="integer"
        android:topRightRadius="integer"
        android:bottomLeftRadius="integer"
        android:bottomRightRadius="integer" />
	
	<!-- 定义填充渐变颜色 -->
	<gradient
        android:angle="integer"
        android:centerX="integer"
        android:centerY="integer"
        android:centerColor="integer"
        android:endColor="color"
        android:gradientRadius="integer"
        android:startColor="color"
        android:type=["linear" | "radial" | "sweep"]
        android:useLevel=["true" | "false"] />
		
	<!-- 设置几何图形的内边距 -->
    <padding 
        android:left="integer"
        android:top="integer"
        android:right="integer"
        android:bottom="integer" />		
		
	<!-- 设置几何图形的形状大小 -->
    <size
        android:width="integer"
        android:height="integer" />	
		
	<!-- 定义使用单种颜色填充 -->
    <solid
        android:color="color" />
		
	<!-- 定义为几何形状绘制边框 -->
    <stroke
        android:width="integer"
        android:color="color"
        android:dashWidth="integer"
        android:dashGap="integer" />
</shape>

用法实例:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
	android:shape="rectangle">
	<!-- 定义填充渐变颜色 -->
	<gradient
		android:startColor="#FFFF0000"
		android:endColor="#80FF00FF"
		android:angle="45"/>
	<!-- 设置内填充 -->
	<padding android:left="7dp"
		android:top="7dp"
		android:right="7dp"
		android:bottom="7dp" />
	<!-- 设置圆角矩形 -->
	<corners android:radius="8dp" />
</shape>