使用draw 9-patch进行.9.png格式图片的制作与使用

本文介绍了如何在Android应用中使用.9.png图片来实现界面背景自适应大小且不失真的效果,包括制作、处理.9.png图片的方法以及在代码中使用该图片的步骤,并提供了实际应用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1、打开

D:\android\android-sdk-windows\tools目录下找到draw9patch.bat文件,然后将其打开,将你要处理的png图片拖入即可。或者File --> Open 9 patch


2、图解



3、提醒

shift+鼠标,清楚所画的黑线。。


------------------------------------以下是转自其它博客的介绍------------------

开发应用程序的时候,如果一个应用的界面太丑,给用户的第一感觉就是这个产品很垃圾,即使功能很强悍。大公司的码农当然就不用担心了,因为有很多艺术天赋的美工美眉来处理这个方面,但是如果是小公司的话,或者说你想自己开发应用的话,没有一个吸引人的界面是不会得到用户关注的。自己开发的应用如果看着很喜爱,那当然再好不过了

废话有些多,了解.9.png图片已经一段时间了,索性将其记载下来,以防以后忘记。虽然网上有很多,但是很乱,看着心烦,而且不符合自己的需求,所以还是自己动手丰衣足食。

.9.png图片其实就是png格式图片,不过它比普通的png图片外围多了1px(像素)的边框,另外就是使用这种格式的图片可以实现背景自适应大小且不失真的效果。比如某些控件横竖屏切换后控件的样子就变形了,或者某些图片作为控件背景也变形,这会让人很郁闷。幸好.9.png图片可以提供这些需要的功能

使用步骤

1、制作属于你自己的png图片,一定要是png图片。可以自己PS制作,也可以解压其他应用的apk文件,用里面的图片资源,Android系统也有图片资源可以使用()
2、在D:\android\android-sdk-windows\tools目录下找到draw9patch.bat文件,然后将其打开,将你要处理的png图片拖入即可。或者File --> Open 9 patch

上边黑线:横向拉伸区域,必须要画的,拉伸是横向拉伸,如右边的区域第二个拉伸的就是横向拉伸的效果
左边黑线:纵向拉伸区域,必须要画的,拉伸是纵向拉伸,如右边的区域第一个拉伸的就是纵向拉伸的效果
下边黑线:可选,横向内容显示区域 
右边黑线:可选,纵向内容显示区域

剩下的自己试试就知道了


3、注意,黑线必须是连续的,如果你感觉画的不好,按shift+鼠标左键将其擦出,然后从新画。画完后点击File-->save 9-patch保存即可,效果如下图


4、接下来需要在程序中使用了,将这个图片放到drawable中即可,跟其他的图片使用没什么区别了,唯一神奇的就是可以自适应,不失真

比如我们用这个图片定义一个Button,另外加个TextView的背景图,也是.9.png图片。

main.xml

代码片段,双击复制
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0"encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:padding="6dp"
   android:orientation="vertical">
 
   <TextView
        android:layout_gravity="right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
           android:padding="5dp"
        android:background="@drawable/sms_out_normal_bg"
        android:text="http://www.cnblogs.com/loulijun/\n -- 花郎" />
    
   <Button
        android:id="@+id/sendMsg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:padding="10dp"
        android:background="@drawable/test"
        android:text="发送消息给允儿"
        />
</LinearLayout>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气的东哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值