Android 中使用xml定义各种Drawable

1,bitmap定义可以任意改变颜色的图片

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:autoMirrored="true"
    android:src="@drawable/ic_settings_bluetooth_alpha"
    android:tint="#ff0000">
</bitmap>

蓝牙图片
上面将图片改为红色,改为其他颜色只需设置tint属性,如果引用一个颜色值就可以一键改变所有图片颜色

2,shape 定义各种图形的图片

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring">
    <!--rectangle 矩形 ,oval 椭圆,line 横线,ring 圆环-->
    <corners
        android:bottomLeftRadius="20dp"
        android:bottomRightRadius="20dp"
        android:radius="20dp" />
    <!--angle 为45的倍数 0表示从左到右,90表示从下到上-->
    <!--gradientRadius 渐变半径 仅当tyoe =radial时有效-->
    <!--type 渐变类别 :线性渐变linear ;扩散渐变(以一个点向外扩散) radial ;扫描渐变(以一个直线一端为原点旋转扩散) sweep-->
    <gradient
        android:angle="0"
        android:centerColor="#00ff00"
        android:centerX="0dp"
        android:centerY="0dp"
        android:endColor="#0000ff"
        android:gradientRadius="50dp"
        android:startColor="#ff0000"
        android:type="radial" />
    <!--width 边界的宽 ;color 边界颜色;dashGap 边界中间长度;dashWidth 边界实线宽 -->
    <stroke
        android:width="15dp"
        android:color="#00ff00"
        android:dashGap="20dp"
        android:dashWidth="10dp" />
    <solid android:color="#ff0000" />
    <size
        android:width="20dp"
        android:height="30dp" />
    <padding
        android:bottom="20dp"
        android:left="20dp"
        android:right="20dp"
        android:top="20dp" />
</shape>

shape可以定义: rectangle 矩形 ,oval 椭圆,line 横线,ring 圆环

3,layer-list叠加的图形

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:bottom="1dp"
        android:drawable="@drawable/shape_bitmap"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp">

    </item>
    <item>
        <shape android:shape="rectangle">
            <solid android:color="#ff0000" />
        </shape>
    </item>
</layer-list>

每一个item就是一个Drawable ,后面的叠加前面的,如定义Edittext的背景

4,selector 状态图形

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/shape_bitmap" android:state_pressed="true">

    </item>
    <item android:drawable="@drawable/shape_bitmap" android:state_pressed="false">

    </item>
</selector>

每一个item对应一个状态,如 按下,选中,可用 常用于 按钮的点击效果等

还有其他一堆drawable

猜你喜欢

转载自blog.csdn.net/kingyc123456789/article/details/53322964