博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android Nine Patch图片及按钮背景
阅读量:6265 次
发布时间:2019-06-22

本文共 991 字,大约阅读时间需要 3 分钟。

NinePatchDrawable 绘画的是一个可以伸缩的位图图像,Android会自动调整大小来容纳显示的内容。一个例子就是NinePatch为背景,使用标准的Android按钮,按钮必须伸缩来容纳长度变化的字符

NinePatchDrawable是一个标准的PNG图像,它包括额外的1个像素的边界,你必须保存它后缀为.9.png,并且保持到工程的res/drawable目录中。如果你是从APK解压后得到的*.9.png文件,注意它是已将周围的空白像素去掉了的,在使用时必须再加上。

这个边界是用来确定图像的可伸缩和静态区域。你可以在左边和上边的线上画一个或多个黑色的1个像素指出可伸缩的部分(你可以需要很多可伸缩部分),它的相对位置在可伸缩部分相同,所以大的部分总是很大的。

你还有可以在图像的右边和下边画一条可选的drawable区域(有效的,内边距线)。如果你的视图对象设置NinePath为背景然后指定特殊的视图字体,它将自行伸缩使所有的文本来适应根据右线与底部线设计好的区域(如果有的话),当然内边距线不包括其中,Android可以使用左边的线与上面的线来定义一个drawable区域。

我们来澄清一下这两条不同的线,左边跟顶部的线来定义哪些图像的像素允许在伸缩时被复制底部与右边的线用来定义一个相对位置内的图像,视图的内容就放入其中。

可以使用tools\draw9patch.bat工具来编辑*.9.png图片,可以看出该工具非常直观的展示了图片在上下或左右拉伸时的效果以及作为背景时其内容显示的位置。

作Nine Patch为按钮背景使用方法:

如果想要设置按钮在按下或者获得焦点时,有不同的背景图片,则可以将需要的背景图片放在drawable目录下(.9.png)格式,同时在drawable目录中新建一个xml文件(内容如下),android:background="@drawable/(XML文件名)",这样就可以在不同状态显示不同的背景。

</selector>

本文转自feisky博客园博客,原文链接:http://www.cnblogs.com/feisky/archive/2010/01/16/1649502.html,如需转载请自行联系原作者

你可能感兴趣的文章
java web dev知识积累
查看>>
Flex 经纬度匹配正则表达式
查看>>
在SSIS包中使用 Checkpoint从失败处重新启动包[转]
查看>>
为什么开通博客?
查看>>
深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)
查看>>
LVS+Keepalived实现高可用负载均衡(转)
查看>>
Django学习【第14篇】:Django之Form组件补充
查看>>
在web.xml中配置初始化参数
查看>>
Java多线程下 ThreadLocal 的应用实例
查看>>
Serializable:序列化代理
查看>>
SQL中表约束是什么意思
查看>>
JS中小数的差,比较大小
查看>>
堆数据结构
查看>>
codeforces / project Euler 泛做
查看>>
对JS中事件委托的理解
查看>>
非确定性计算引擎转化为C#版本并重构
查看>>
解决问题:Django admin页面样式丢失
查看>>
获取指定<文字行数>的<高度>是多少 TextKit
查看>>
IO - 同步,异步,阻塞,非阻塞 (亡羊补牢篇)
查看>>
Asp.Net Core实战(干货)
查看>>