Himi 原创, 欢迎转载,转载请在明显处注明! 谢谢。
原文地址:http://blog.csdn.net/xiaominghimi/archive/2010/12/30/6107837.aspx
前几天群成员讨论过关于9patch的工具【我比较喜欢喊它9妹子,西西(*^_^*)】、然后研究了一下,比较简单但是很实用的一个Android sdk 自带工具、这里给大家做一个分享下经验!
1.什么是“9妹”(9patch)?
它是一个对png图片做处理的一个工具,能够为我们生成一个"*.9.png"的图片;
2.何为"*.9.png"?
所谓"*.9.png"这是Android os里所支持的一种特殊的图片格式,用它可以实现部分拉伸;这种图片是经过”9妹“进行特殊处理过的,如果不处理的话,直接用PNG图就会有失真,拉伸不正常的现象出现。
3.它的用途是?
说到用途,这种特殊格式的png图,我也看了网上的相关文章但都是用一个能自适应的button举例子!(如下图)清一色抄袭.. - -、
(此实例咱们直接无视掉,在后面我会给大家灌输游戏中实例)
这个例子是指当button上的字体大小改变,那么文字底下的png图也会自动适应文字。
这似乎表明做Android 软件应用 使用一些组件的的时候会时常用到;
4.那么实际在游戏中到底如何使用呢?什么情况下去使用呢?
....当然啦,身为做游戏我一定要”9妹“利用在咱们游戏中才行,不然岂不是白研究了、经过思考突然想到了一些情况,并且发现“9妹”确实在游戏开发中占有一定的分量!下面我们来先熟习“9妹”工具,然后再跟大家举例,贴图来说明其用途、毕竟有图有真相 呵呵~
启动9妹:
在你Android SDK 路径下 X:/android sdk/tools ,你会找到一个 【draw9patch.bat】,没错这就是9妹啦、官方名 NinePatch ;
提示导入一张png图片,然后真正进入"9妹"的操作界面(如下图): (图1)
序列① :在拉伸区域周围用红色边框显示可能会对拉伸后的图片产生变形的区域,如果完全消除该内容则图片拉伸后是没有变形的,也就是说,不管如何缩放图片显示都是良 好的。 (实际试 发现NinePatch编辑器是根据图片的颜色值来区分是否为bad patch的,一边来说只要色差不是太大不用考虑这个设置。)
序列 ② :区域是导入的图片,以及可操作区域。
序列 ③:这里 zoom:的长条bar 是对导入的图放大缩小操作,这里的放大缩小只是为了让使用者更方便操作,毕竟是对像素点操作比较费眼,下面的 patch scale 是序列 ④区域中的三种形态的拉伸后的一个预览操作,可以看到操作后的图片拉伸后的效果。
序列 ④:区域这里从上到下,依次为:纵向拉伸的效果预览、横向拉伸的效果预览,以及整体拉伸的效果预览
序列 ⑤:这里如果你勾选上,那么当你鼠标放在② 区域内的时候并且当前位置为不可操作区域就会出现lock的一张图,就是显示不可编辑区域 ;
序列 ⑥: 这里勾选上,那么在④ 区域中你就会看到当前操作的像素点在拉伸预览图中的相对位置和效果。
序列⑦:在编辑区域显示图片拉伸的区域;
如何操作:
鼠标左键选取需要拉伸的像素点; shift+鼠标左键取消当前像素点。
操作区域:
大家看到导入的png图片默认周围多了一像素点,也就是这一圈一像素点就是咱们的可操作区域。因为下方和右方可操作区域是指定内容的显示区域,属于可选区域,可不予理会;但是要注意内容区域的标记不能有间断,也就是说标记要连续且仅有一处,否则.9.png图片在放入项目下会报错。
主要大家注意Left 和 top 操作区域;
Top操作区域的一排像素点,表示横向拉伸的像素点;
Left操作区的一排像素点,表示纵向拉伸的像素点;
下图是我对图片的操作:
(图2)
大家看到上方和左边的黑色像素了么?对,这些是我手动操作的地方,我这里是想让此png图像拉伸操作的时候,只是中间区域被拉伸。选择上方中间区域是为了横向拉伸的时候选取的拉伸像素点,左边则是纵向拉伸的;
那么大家现在回头看一眼(图1)然后对比(图2),看到区别了吧!很明显,(图1)我们没有任何操作,默认整体拉伸,那么拉伸的效果很明显的失真了...而(图2)我们指定了拉伸的像素点所以只是中间的被拉伸,图片的花边我们保留不拉伸这样看起来就好太多啦 娃哈哈、
然后通过“9妹”就可以保存出来一张“*.9.png”图片,我们放在android 项目的res 下的 drawable 下就可以拉!
现在我就可以跟大家讲下使用“*.9.png”的好处:
在我们手机游戏开发的过程中,我们最关系的是生成的安装文件、比如j2me 的jar 包,塞班的sis、sisx 以及咱们andrid中的apk都希望打包后的包越小越好、虽然现在的手机趋向于智能了,但是毕竟手机的容量和内存还是有限、身为移动设备开发者的我们对此都很看重,那么通过"9妹"处理后的图片我们就可以省去不少的内存和容量。
1.省精力和时间!
如果我们有一张50*50的类似上面那种带花边的png图片,那么我们在android或者大分辨率的机器上使用的画,肯定需要对其处理,那么要不就是让美工的mm们给咱们重新做一张,那么通过"9妹"处理得到的“*.9.png”就会省去美工的负担了。
2.省内存!
如果不想用代码来对其小图进行缩放来再次使用(因为考虑会失真),那么可能会多加了图片,这样一来游戏包的大小就会增加了,几K—几十K不等,而利用"9妹"处理的就省去了这些麻烦。
3.减少代码量!
有些童鞋该说啦,我用代码一样能实现(图2)的效果不失真,OK,我也知道。当初我在J2ME平台做RPG的时候也是利用设置可视区域等代码来实现的,但是如果你用“.9.png”的方式就更简单!!!
不多吹 “9妹”的好处,下面我们来看看代码如何实现此格式的方式和效果吧!
下图是模拟器中的效果图、
左边是正常png的缩放不同大小的情况,右边是咱们的9妹处理过的“*.9.png”、娃哈哈,怎么样 效果明显不一样吧!
好啦,到这里就结篇吧,挺累的 写了三个多小时了....... 希望大家以后多多的利用 “9妹”哦、
(推荐大家订阅本博客,因为咱的更新速度可是很快的~娃哈哈)
分享到:
相关推荐
知识点一:Android桌面启动器(Launcher)开发基础 在Android系统中,桌面启动器(Launcher)是用户与Android设备交互的起点,负责展示应用图标、列表和各种小部件。Android允许开发者创建自己的Launcher应用,可以...
本文将详细讲解如何手把手地搭建安卓开发环境,包括Java JDK、Android SDK、ADK(Android Development Kit)以及集成开发环境Android Studio的安装与配置。 首先,我们来关注"1.安装java"这个步骤。Java JDK(Java ...
Android Launcher 开发指南 Android Launcher 是 Android 操作系统中的桌面应用程序,负责管理桌面图标、widget 和其他桌面元素。下面我们将一步步指导您如何开发一个自己的 Launcher,並使其替代系统的默认 ...
Android Launcher 开发教程 Android Launcher 是 Android 系统的桌面应用程序,负责显示应用程序列表、 Widget、快捷方式等内容。在本文中,我们将手把手教您开发一个简单的 Launcher 应用程序。 Launcher 的基本...
在《手把手教你用Android开发新浪微博客户端》这本书中,作者会逐步引导读者完成以上所有步骤,包括设置项目、获取API权限、设计UI、实现网络请求以及处理数据。书中的实例代码和详细解释将帮助初学者快速掌握...
### 手把手教你Android编译 #### 一、Android编译概述 Android作为一个开源的操作系统,支持多种架构的编译,包括32位和64位。本文将详细介绍如何在32位和64位环境下进行Android源码的编译。 #### 二、32位系统...
精通Android游戏开发
在Android应用开发中,ADK(通常指的是Android Development Kit)是开发者进行应用程序创建不可或缺的工具集。本教程将详述如何在安卓环境中安装ADK 4.0.3,也称为Ice Cream Sandwich版本,以及与之相关的Android ...
在本项目"手把手教你做Android手机遥控车.zip"中,我们将探讨如何利用Android设备作为遥控器来控制一辆玩具车。这个项目集成了移动技术、蓝牙通信和硬件接口设计,让我们一起深入了解一下其中的关键知识点。 1. **...
### Android手把手开发一个图片浏览器 #### Android平台简介与历史背景 Android平台是目前全球最广泛使用的移动操作系统之一。它最初是由安迪·鲁宾(Andy Rubin)在2003年创立的一个小型科技公司开发的,专注于为...
新浪开放平台提供了丰富的资源,如开发文档、SDK和接口测试工具,方便开发者进行API调用。 在开发过程中,作者将项目分为UI和功能两大部分。UI设计和实现占据了大部分时间。例如,客户端的第一个功能是页面载入等待...
在海康相机SDK的二次开发中,C++作为主要编程语言,可以方便地调用SDK提供的接口,实现相机的控制和图像处理功能。 三、QT框架 QT是一个跨平台的C++图形用户界面库,提供了一整套用于创建GUI(图形用户界面)的工具...
完成动手教程和项目,这个易于遵循的指南将教你如何使用几个Unity工具开发游戏。随着你的进步,你将学习如何使用Unity引擎,使用c#创建简单的脚本,集成图形,声音,动画和操作物理,为你的游戏创建有趣的机制。你将...
下载并安装Android Studio后,按照向导设置SDK(软件开发工具包),它包含了开发、调试和运行Android应用所需的库和工具。 接下来,你会学习如何创建一个新的Android项目。在Android Studio中,通过选择“Start a ...
《Android 4.X 开发完全上手——手把手构建完整Android App范例》是一本针对初学者和进阶开发者深入浅出的Android应用开发指南。该压缩包文件包含的源代码资源,旨在帮助读者通过实践操作,理解并掌握Android 4.X...
为了支持开发者,Google 提供了 Android SDK(软件开发工具包)和 ADT(Eclipse 集成的 Android 开发插件),使得开发者能够在 Eclipse 中方便地开发 Android 应用。 开发 Android 应用的第一步是搭建开发环境。这...