Android shape 几种用法

1 边框

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="5dp" />
    <solid android:color="#ffdb78" />
    <stroke
        android:width="1dp"
        android:color="#fec252" />
</shape>

设置 stroke的width宽度就能实现边框

2覆盖

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <gradient
                android:angle="90"
                android:endColor="#46578B"
                android:startColor="#232355" />
            <corners android:radius="@dimen/main_card_corner" />
        </shape>
    </item>
    <item
        android:bottom="@dimen/main_card_border"
        android:left="@dimen/main_card_border"
        android:right="@dimen/main_card_border"
        android:top="@dimen/main_card_border">
        <shape>
            <corners android:radius="@dimen/main_card_corner" />
            <gradient
                android:angle="90"
                android:endColor="#282A5F"
                android:startColor="#0E0E2E" />
        </shape>

    </item>
</layer-list>

设置 android:bottom="@dimen/main_card_border"
android:left="@dimen/main_card_border"
android:right="@dimen/main_card_border"
android:top="@dimen/main_card_border">
四个属性,也可以实现边框。

3 只某一条边或者两条边或者三条边有颜色

只显示一条底边

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:left="-5dp" android:top="-5dp" android:right="-5dp">
        <shape>
            <stroke
                android:width="2dp"
                android:color="@color/black" />
        </shape>
    </item>
</layer-list>

只显示右边

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:bottom="-5dp"
        android:left="-5dp"
        android:top="-5dp">
        <shape>
            <stroke
                android:width="2dp"
                android:color="@color/taskdesc_tableheader_dividerline" />
        </shape>
    </item>
</layer-list>

显示左右两边

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item  android:top="-2dp">
        <shape>
            <stroke
                android:width="1dp"
                android:color="@color/black" />
        </shape>
    </item>
</layer-list>

显示左上下三条:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:right="-2dp">
        <shape>
            <solid android:color="@color/transparent" />
            <stroke
                android:width="1dp"
                android:color="#CCFFC34C" />
            <corners
                android:bottomLeftRadius="50dp"
                android:topLeftRadius="50dp"></corners>
        </shape>
    </item>
</layer-list>

具体怎么设置需要大家根据情况测试一下。

4 渐变

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:angle="0"
        android:startColor="#1264C9"
        android:endColor="#31A5FC"
        android:type="linear" />
    <corners
        android:bottomLeftRadius="25dp"
        android:bottomRightRadius="25dp"
        android:topLeftRadius="25dp"
        android:topRightRadius="25dp" />
</shape>

设置gradient的四个属性。

6 shape = ring 时 属性设置

android:shape=“ring” //共有4种类型,矩形(默认)/椭圆形/直线形/环形
// 以下4个属性只有当类型为环形时才有效
android:innerRadius=“dimension” //内环半径
android:innerRadiusRatio=“float” //内环半径相对于环的宽度的比例
android:thickness=“dimension” //环的厚度
android:thicknessRatio=“float” //环的厚度相对于环的宽度的比例
android:useLevel=“boolean” //如果当做是LevelListDrawable使用时值为true,否则为false,只有设置了false圆环才能显示出来。
** 一般设置:
android:innerRadiusRatio=“3.5”
android:thicknessRatio=“11”
两个属性,就能够调节大小了,系统默认使用了innerRadiusRatio 取值3,也使用了thicknessRatio 取值 9 **

其他还包括圆角,shape属性实现各种形状,size,padding等。

你可能感兴趣的:(android基础)