Shape的相关属性详解

时间:2022-02-19 16:08:47

shape相关属性详解

1.gradient渐变

<gradient
android:angle="integer"
android:centerX="Float"
android:centerY="Float"
android:centerColor="integer"
android:startColor="color"
android:endColor="color"
android:gradientRadius="integer"
android:type=["linear"|"radial"|"sweep"]
android:usesLevel=["true"|"false"]
/>

angle:角度,当 android:type=“linear”时有效
centerX:Float。渐变色中心的 X 相对位置( 0-1.0 )。当 android:type=“linear”时无效
centerY:Float。渐变色中心的 Y 相对位置( 0-1.0 )。当 android:type=“linear”时无效
centerColor:color。可选的颜色,出现在 start 和 end 颜色之间。
gradientRadius:Float。渐变色的半径。当 android:type=“radial” 时有效。
startcolor:开始的颜色
endcolor:结束的颜色
type:Keyword 。渐变色的样式。有效值为:
“linear”:线性渐变,默认值
“radial”:环形渐变。 start 颜色是处于中间的颜色
“sweep”:sweep 渐变
useLevel:Boolean。“ true ”表示可以当作 LevelListDrawable 使用

1.1 android:type=”linear”
例如:在res/drawable下建立一个gradient_shape.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient
android:startColor="#fff"
android:endColor="#000"
android:centerColor="#dc143c"
android:angle="45"/>


</shape>

在res/layout里新建一个activity_gradient.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/back_shape"
android:orientation="vertical" >


</LinearLayout>

截图:
Shape的相关属性详解

android:startColor=”#fff”起始颜色为白色
android:endColor=”#000”结束颜色为黑色
android:centerColor=”#dc143c”中间色为红色
android:angle=”45”渐变角度为45度,从左下到右上

1.2 android:type=”radial”

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient

android:startColor="#fff"
android:endColor="#000"
android:centerColor="#dc143c"
android:gradientRadius="90"
android:type="radial"
/>


</shape>

截图:
Shape的相关属性详解

这里颜色渐变的是里向外渐变
android:startColor=”#fff”起始(最里)颜色为白色
android:endColor=”#000”结束(最外)颜色为黑色
android:centerColor=”#dc143c”中间颜色为红色
android:gradientRadius=”90”渐变半径为90
android:type=”radial”类型为环形渐变

1.3 android:type=”sweep”

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient

android:startColor="#fff"
android:endColor="#000"
android:centerColor="#dc143c"
android:centerX="0"
android:centerY="0"
android:type="sweep"
/>


</shape>

截图:
Shape的相关属性详解

android:startColor=”#fff”起始颜色为白色
android:endColor=”#000”结束颜色为黑色
android:centerColor=”#dc143c”中间色为红色
android:centerX=”0”渐变色中心的 X 相对位置( 0-1.0 )。当android:type=“linear”时无效
android:centerY=”0”渐变色中心的 Y 相对位置( 0-1.0 )。当 android:type=“linear”时无效
android:type=”sweep”延伸类型

2 . corners 圆角

<corners
android:radius="integer"
android:topLeftRadius="integer"
android:topRightRadius="integer"
android:bottomLeftRadius="integer"
android:bottomRightRadius="integer"
/>

corners–>圆角
radius:半径,会被下面的特性覆盖。
topLeftRadius:左上圆角半径。
topRightRadius:右上圆角半径。
bottomLeftRadius:左下圆角半径。
bottomRightRadius:右下圆角半径。

3 . padding各个方向的间距

<!-- 间隔 -->
<padding
android:left="2dp"
android:top="2dp"
android:right="2dp"
android:bottom="2dp"/>
<!-- 各方向的间隔 -->

4 . size尺寸大小

 <!-- 大小 -->
<size
android:width="100dp"
android:height="50dp"/>
<!-- 宽度和高度 -->

5 . solid背景色填充

<!-- 填充 -->
<solid
android:color="@android:color/white"/>

6 . stroke描边

<!-- 描边 -->
<stroke
android:width="2dp"
android:color="#a9a9a9"
android:dashWidth="2dp"
android:dashGap="1dp"/>

android:width=”2dp” 设置边边的宽度
android:color=”#a9a9a9” 设置边边的颜色
android:dashWidth=”2dp” 设置虚线的宽度
android:dashGap=”1dp” 设置虚线的间隔宽度