Android应用开发——*.9.png及制作

你是否曾经对res/drawable目录下的*.9.png文件感觉到迷惑呢?下面的内容说的就是这么一些事儿。


*.9.png对应着android中类NinePatchDrawable,它是一个Drawable对象。它是一张可伸展的bitmap图片。当*.9.png用于背景图片时,android会自动地根据其上的View的大小来调整*.9.png的大小。比如说,一个按钮的背景图片会随着按钮上的TextView的大小来调整背景的大小。


NinePatchDrawable是一张标准的PNG图片,图片上有一个1像素宽度的边框,它必须保存为*.9.png的文件格式,并存放在res/drawable目录下。


下面通过一张图来说明NinePatchDrawable中各边的边框的作用:


关于上图的说明:

左和上边框表示着图片伸展的方向和区域(如位于上方的图片的灰色虚线所示),而右和下边框表示图片上的View的放置区域(如位于下方的图片的粉红虚线框所示)。


下面来看一个实例,有两个Button,它们都有相同的背景图片my_button_background.9.png,但Button内的TextView的大小却不一样:

<Button id="@+id/tiny"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:text="Tiny"
        android:textSize="8sp"
        android:background="@drawable/my_button_background"/>

<Button id="@+id/big"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerInParent="true"
        android:text="Biiiiiiig text!"
        android:textSize="30sp"
        android:background="@drawable/my_button_background"/>
两个Button的效果图:



Nine-patch图片的制作

可以使用sdk目录/tools/下的draw9patch工具来制作*.9.png图片。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值