android平台有多种不同的分辨率,很多控件的切图文件在被放大拉伸后,边角会模糊失真,在android平台下使用点九PNG技术,可以将图片横向和纵向同时进行拉伸,以实现在多分辨率下的完美显示效果。

普通拉伸和点九拉伸效果对比:

对比很明显,使用点九后,仍能保留图像的渐变质感,和圆角的精细度。

.9.png是一种非失真性压缩位图图形文件格式。这种格式的图片和普通图片的区别就是其四周多了一个黑色边框。

左边那条黑色线代表图片纵向拉伸的区域,上边的那条黑色线代表横向拉伸区域,右边的黑色线代表纵向内容绘制的区域,下边的黑色线代表横向内容绘制的区域,右边和下边的线是可选的,左边和上边的线不能省略。

其实就是利用黑线把图片分成九宫格格式,被黑线划分出来的中间块状区域(⑨)是可拉伸的,其他地方是保持不变的。

1.使用Andorid SDK\tools目录下的Draw9Patch.jar制作9.PNG图片

(1)定义拉伸区域:

默认的拉伸是整体拉伸,其实边框部分我们并不想拉伸,好,我们自己来定义拉伸区域,如下图:

然后点击File,导出为content.9.png。

在Eclipse新建Android工程,将图片作为背景显示出来:

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="正文:A NinePatchDrawable graphic is a stretchable bitmap image, which Android will     automatically resize to accommodate the contents of the View in which you have placed it as the     background. A NinePatch drawable is a standard PNG image that includes an extra 1-pixel-wide bor    der."

android:background="@drawable/content"

android:textColor="#000"/>

可以看出,边框非常的清晰。下图是未使用.9.png的对比图,而且也不是我们要的效果:

到这里为止,我们已经基本会制作.9.PNG图片了。为了知识体系的全面性和深入性,我们继续。

(2)定义内容区域:

是不是觉得文字和边距挨的太近,好,我们使用right和bottom边的线来定义内容区域,来达到增大内边距的目的。

我们定义了一个很小的内容区域,其他的地方则自动充当边框,从而使内边距显的很大,如下图:

在这里,我要特别说明,一开始为了增大内边距,很容易惯性思维,在中申明android:padding="10dip" 之类的,我在这里劝告朋友们不要这么做,一是你将无法预知你的显示,二是这比较混淆,因为设置内容区域就是确定padding,所以我在前面部分说他们是神似。我个人认为通过内容区域设定padding比在布局xml中定义padding更优雅,更简洁!

关于Draw9Patch工具的其他使用说明,我在次不再累述,因为要说的话太多,为了节省篇幅,请参考官方文档。

(3)制作.9.PNG的高级技巧

对于初学Draw9Patch的人来说,这可以算是高级技巧,那就是:拉伸区域,可以不是连续的,可以不止一块,而且是和自定义的边框线的长度成正比。

直接上图说明:

(4)draw9patch.bat其他功能说明

①Zoom: 用来缩放左边编辑区域的大小

②Patch scale: 用来缩放右边预览区域的大小

③Show lock: 当鼠标在图片区域的时候显示不可编辑区域

④Show patches: 在编辑区域显示图片拉伸的区域 (使用粉红色来标示)

⑤Show content: 在预览区域显示图片的内容区域(使用浅紫色来标示)

⑥Show bad patches: 在拉伸区域周围用红色边框显示可能会对拉伸后的图片产生变形的区域,如果完全消除该内容则图片拉伸后是没有变形的,也就是说,不管如何缩放图片显示都是良 好的。(实际试发现NinePatch编辑器是根据图片的颜色值来区分是否为bad patch的,一边来说只要色差不是太大不用考虑这个设置。)

2.使用Photoshop制作9.PNG图片

如流程图所示,相对与方法1,只需2个步骤就可得到.9.png图片,具体步骤为:

1. 确定切图后直接改变图片的画布大小,

2. 手动将上下左右各增加1px

3. 使用铅笔工具,手动绘制拉伸区域,色值必须为黑色(#000000)。

4. 存储为web所用格式,选择png-24,储存时手动将后缀名改为.9.png

不过这种方法的缺点是不能实时预览,判断并测试拉伸区域的准确性。

使用此方法需要注意以下2点:

1. 手绘的黑线拉伸区必须是#000000,透明度100%,并且图像四边不能出现半透明像素;

2. 你的.9.png必须绘有拉伸区域的黑线;

否则,图片不会通过android系统编译,导致程序报错。还有,有同学疑惑解压缩apk文件后,.9.png图片里的黑线怎么没了?

那是因为andriod程序在把文件打包成apk的时候,程序会自动把*.9.png图片边缘的黑线去掉,所以解压缩apk后看到的.9.png文件是没有黑线的。

android 编辑9图片,Android .9.png图片的处理相关推荐

  1. android编辑框显示,android – 如何在屏幕上显示文本编辑框?

    您的问题最简单的解决方案是在您主要(肖像修复的)活动中启动的单独的对话框主题的活动中显示您的EditText. EditText Activity不应该将其方向固定,因此它会沿着您滑出键盘时的期望旋转 ...

  2. android编辑软件下载,Android Files

    Android Files是一款非常不错的手机文件管理软件及代码编辑软件,主要用来管理手机上的文件,也可以单独处理图片.视频.apk文件,支持远程连接,功能非常强大,有需要的朋友赶紧下载吧. 软件说明 ...

  3. android 编辑9图片,Android基础入门教程——1.6 .9(九妹)图片怎么玩

    Android基础入门教程--1.6 .9(九妹)图片怎么玩 Android基础入门教程 1.本节引言: 可能有的一些疑问: 1.什么是.9图片? 答:图片后缀名前有.9的图片,如pic1.9.png ...

  4. android 编辑框图片,android开发如何使用图片对话框

    在adnroid开发中我们会经常看到有的应用弹出的对话框是一个带有图片内容丰富的对话框.那么我们如何去实现它呢?在这里笔者给大家介绍一下.贴出代码如下,在代码里笔者将详细解释: import andr ...

  5. android开机图片格式,Android平台启动图使用.9.png图片

    概述 目前HBuilder|HBuilderX中仅定义几种标准分辨率的启动图配置,而实际上存在很多不同分辨率的手机,导致启动图会进行拉伸或压缩引起变形,Android平台为了解决此问题就出现了可以适配 ...

  6. Android 7.0下拍照和裁剪图片

    Android 7.0下拍照和裁剪图片 最近,公司的APP集中爆发了头像上传中拍照或照片裁剪的bug,让我才意识到及时学习Android新特性是多么重要,一个过去式的APP是无法一直满足日益变化的新需 ...

  7. Android pdf填充表单,预览,图片填充,水印添加

    前言 需求是这样的,客户需要用户登录app后录入个人信息,然后由手机端帮助将录入的信息填充到pdf, 用户录入的部分图片需要填充到pdf模板的最后面,还需要给每一页pdf都加上水印,生成后给用户预览 ...

  8. android手机照片设壁纸太大,Android手机上设置一个特定的图片作为壁纸会导致手机崩溃...

    上周,我们报道了在一些Android手机上设置一个特定的图片作为壁纸会导致手机崩溃,并陷入显示开关的循环中,使其无法通过锁定屏幕.它影响了大多数安卓手机,尤其是三星智能手机. 人们发现问题在于图像的格 ...

  9. 【2022/1/7】Android平台启动图制作.9.png图片

    Android平台启动图制作.9.png图片 可以先了解4条黑边的意义,当然如果不了解也是可以的,我们制作.9.png使用android studio 顶部:水平拉伸时,只有这一部分进行拉伸 左边:竖 ...

最新文章

  1. php中条件查询语句,thinkphp3.2框架中where条件查询用法总结
  2. ASP.NET MVC过滤器(一)
  3. Java 自动装箱性能
  4. 【科普】从HTTP到HTTP/3的发展简史
  5. SAP 销售订单删除及如何查已删除的单
  6. 日志分析系统分类有哪些_SEO优化中网站日志起到的重要性作用
  7. Android Service演义
  8. HDU3333 Turing Tree 离线树状数组
  9. kafka中的groupid
  10. 网络通信程序写起来很难专业课没问题
  11. linux查询用过的历史命令,在linux中,怎麼查看系统的版本,怎麼查看自己用过的历史命令...
  12. 10分钟搞定webpack打包
  13. 机器学习中的数学——概率论基础知识
  14. Ubuntu 环境下SVN添加新项目
  15. 我使用的安卓软件名单_我是亲民_新浪博客
  16. 创龙基于AM5728平台的PCIe通信案例(一)
  17. 最近20年天文学有什么重大的进展
  18. CSS组件_0 燕尾
  19. Vue使用WebUploader上传文件/压缩包
  20. 生态 | 人大金仓与超聚变的多个产品完成兼容认证

热门文章

  1. 游戏开发unity编辑器扩展知识系列:进度条显示EditorUtility.ProgressBar
  2. 【C语言】给出一个不多于5位的正整数,要求:1.求出它是几位数;2.分别输出每一位数字;3.按逆序输出各位数字。
  3. 正则表达式验证生日手机号信息
  4. python中的try语句
  5. echarts将x轴展示在图标上方
  6. [易飞]关于自制件调整为虚设件的处理方案
  7. 【FinE】单利与复利
  8. BingObjectnessCVPR14源码编译环境由vs2012+64位转换为vs2012+32位机过程
  9. 汽车驱动桥毕业设计【毕业设计(论文) +7张CAD图纸】
  10. win10系统excel2019快速实现间隔行填充颜色快捷键的方法