Android 圆角边框和渐变

首先在res文件夹下的drawable里新建一个文件shape_corner.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/blue" />
    <corners android:topLeftRadius="20dp"
        android:topRightRadius="20dp"
        android:bottomRightRadius="20dp"
        android:bottomLeftRadius="20dp"/>
    <stroke android:width="1dp" android:color="@color/black" />
</shape>

<solidandroid:color>设置了背景颜色。android:topLeftRadius、android:topRightRadius、android:bottomLeftRadius、android:bottomRightRadius分别是左上角、右上角、左下角、右下角的半径值,设置了半径值,相应的角就是圆角,半径值越大,圆角就越大。<stroke>设置边界属性,如边界的宽度、颜色等。

将按钮的背景设置为shape_corner,

android:background="@drawable/shape_corner"

如图:

再来说说渐变,在res的drawable里新建一个文件shape_gradient.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:angle="90"
        android:endColor="@color/colorPrimary"
        android:centerColor="@color/blue"
        android:startColor="@color/colorAccent" />
</shape>

[android:angle]渐变色的角度,举例来说,0代表从上至下颜色渐变;45代表从左至右颜色渐变;90代表从下至上颜色渐变…
[android:startColor] 渐变开始的颜色

[android:endColor] 渐变结束时的颜色

[android:centerColor] 渐变中间的颜色(可有可无)

如果要将圆角和渐变结合起来,只要将<solidandroid:color>替换成<gradient...>就行了

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:topLeftRadius="20dp"
        android:topRightRadius="20dp"
        android:bottomRightRadius="20dp"
        android:bottomLeftRadius="20dp"/>
    <stroke android:width="1dp" android:color="@color/black" />
    <gradient
        android:angle="180"
        android:endColor="@color/colorPrimary"
        android:centerColor="@color/blue"
        android:startColor="@color/colorAccent" />
</shape>

如图:

猜你喜欢

转载自blog.csdn.net/hua93/article/details/81184283
今日推荐