专栏首页上善若水031android初级篇之【转】android 9png图片

031android初级篇之【转】android 9png图片

9png格式是什么

在Android的设计过程中,为了适配不同的手机分辨率,图片大多需要拉伸或者压缩,这样就出现了可以任意调整大小的一种图片格式“.9.png”。这种图片是用于Android开发的一种特殊的图片格式,它的好处在于可以用简单的方式把一张图片中哪些区域可以拉伸,哪些区域不可以拉伸设定好,同时可以把显示内容区域的位置标示清楚。 本文结合一些具体的例子来看下.9.png的具体用法。

普通的.png资源与.9.png的资源区别:

![Uploading 031_2_142350.png . . .]

031_1.png

普通的png资源就不多介绍了,可以明显看到.9.png的外围是有一些黑色的线条的,那这些线条是用来做什么的呢?我们来看下放大的图像:

031_2.png

放大后可以比较明显的看到上下左右分别有一个像素的黑色线段,这里分别标注了序号。简单来说, 序号1和2标识了可以拉伸的区域, 序号3和4标识了内容区域。 当设定了按钮实际应用的宽和高之后,横向会拉伸1区域的像素,纵向会拉伸2区域的像素。如下图:

031_3.png

拉伸的含义应该比较容易理解,但是内容区域的标注有什么意义呢?我们来看下图:

031_04.png

这里程序设置的文字垂直居中,水平居左的对齐方式。对齐方式是没有问题的,但是对于这种大圆角同时又有些不规则边框的的图形来说,错误的标注方式会让排版看起来很混乱。所以我们需要修正内容区域的线段位置和长度

031_05.png

把横向的内容区域缩短到圆角以内,纵向的内容区域控制在输入框的高度以内,这样文字就可以正常显示了。

这里还有一种特殊情况,就是本身是.9.png的资源,但是在修改过程中你希望这张.9.png不能被拉伸(在做皮肤的情况中有可能会遇到),那怎么办呢?只要把拉伸区域的点点在透明像素的地方就可以了,这样拉伸的时候会拉伸透明部分的像素,而不会拉伸图像本身。如下图:

031_06.png

大家可以看到拉伸区域的黑点是可以不连续的。

最外围的一圈像素必须要么是纯黑色,要么是透明,一点点的半透明的像素都不可以有,比如说99%的黑色或者是1%的投影都不可以有;

参考链接

  1. Android设计中的.9.png与Android Studio中的设置
  2. 如何使用draw9patch制作.9.png图片

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • L010Linux和androidNDK之linux避免僵尸进程,子进程退出的处理

    L010Linux和androidNDK之linux避免僵尸进程,子进程退出的处理

    上善若水.夏
  • L011Linux和androidNDK之socket出错情况的处理:Interrupted system call,Try again

    L011Linux和androidNDK之socket出错情况的处理:Interrupted system call,Try again

    上善若水.夏
  • 046android初级篇之android多分辨率兼容

    android:anyDensity="true"时,应用程序安装在不同密度的终端上时,程序会分别加载xxhdpi、xhdpi、hdpi、mdpi、ldpi文件...

    上善若水.夏
  • Python爬虫进阶 | 某某街 | 某乐网 加密算法分析

    一个一个排查,最终我们找到了加密的地方,md5加密,打上断点进行调试,重新点击登录,停在了我们断点的地方

    Python高效学习
  • 吹弹牛皮之Unity 引擎基础 - 几何图元的相交性测试

    《吹弹牛皮之Unity 引擎基础 - AABB与相交检》版权归原作者小菜(赵晋伟)所有,请勿随意转载和抄袭一经作者发现将需要追究其法律责任和经济损失!谢谢!

    用户7698595
  • [Go] Golang练习项目-邮箱imap网页版客户端工具

    # go-imap 邮箱imap网页版客户端工具,基于GO语言实现。 https://github.com/taoshihan1991/imaptool 1....

    陶士涵
  • 一步一步学Linq to sql(十):多层架构MVC WCF Linq

     A,MVC网站项目 MvcOperation:留言簿表现层  B,类库项目 Contract:定义数据访问服务的契约  C,类库项目 Service:定义数据...

    aehyok
  • 张青林:TXSQL是什么?云计算时代数据库核弹头

    腾讯MySQL内核研发专家张青林在腾讯“云+未来”峰会的「开发者专场」做了主题为“TXSQL:云计算时代数据库核弹头”的技术内容分享,本次分享从五个方面介绍TX...

    云加社区
  • Lucene 全文检索

    爱撒谎的男孩
  • 李成熙 :云开发——小程序后台服务开发最佳实践

    我本人是在2014年的时候加入腾讯,主要做过有像QQ,小程序也做过一些,如腾讯文档的小程序。现在主要负责小程序·云开发。

    云加社区技术沙龙

扫码关注云+社区

领取腾讯云代金券