Drawable资源类型详述 (2)

Drawable资源是一个很泛的概念,它是指可以被画到屏幕上的,可以通过getDrawable()获取,或者通过android:drawable引用到其它xml文件的资源,资源的类型有很多种:

Bitmap File: 一般是以.png, .jpg, .gif结尾的,可以创建一个BitmapDrawable对象。

Nine-Patch File: 是一个可以根据内容进行扩充的PNG资源,创建一个NinePatchDrawable对象。

Layer List: 管理一组drawable资源的xml文件,他们通过在数组中的顺序进行绘制,因此最大下标绘制在最上面,返回一个LayerDrawable对象。

State List: 一个包含不同状态的bitmap图形的xml文件,比如不同状态下的按钮图片,返回一个StateListDrawable对象。

Level List: 定义一组可供选择的Drawable的xml文件,返回LevelListDrawable对象。

还有Transition Drawable, Inset Drawable, Clip Drawable, Scale Drawable Shape Drawable。

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:drawable="@[package:]drawable/drawable_resource"
        android:id="@[+][package:]id/resource_name"
        android:top="dimension"
        android:right="dimension"
        android:bottom="dimension"
        android:left="dimension" />
</layer-list>

可以看到每个xml文件都有很多的属性值可以设置,用举例的形式为每个drawable举个例子。

更多灵活的使用,以及其它的炫酷的效果需要更多的实践。

源码在appresources目录里面。

这些都是可以定义成xml格式,在代码中返回类似InsetDrawable, ClipDrawable, ScaleDrawable, ShapeShape的对象,从而调用setBackground进行设置。

本例子中使用了DrawerLayout进行布局,这种布局的好处就是将所有的drawable可以由列表的形式显示出来,选择相应的一个layout就会有相关的图像显示。

上图是使用Shape新建一个矩形,xml文件如下所示:

<?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>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值