当前位置: 首页 > news >正文

招聘网站开发兼职西安网站制作厂家

招聘网站开发兼职,西安网站制作厂家,wordpress 头条采集,网站源码本地演示本站文章均为 李华明Himi 原创,转载务必在明显处注明#xff1a; 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/321.html 前几天群成员讨论过关于9patch的工具【我比较喜欢喊它9妹子#xff0c;西西(*^_^*)】、然后研究了一下#xff0c;比较…本站文章均为 李华明Himi 原创,转载务必在明显处注明 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/321.html       前几天群成员讨论过关于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妹”的好处下面我们来看看代码如何实现此格式的方式和效果吧  package com.himi;  import android.content.Context;  import android.graphics.Bitmap;  import android.graphics.BitmapFactory;  import android.graphics.Canvas;  import android.graphics.Color;  import android.graphics.NinePatch;  import android.graphics.Paint;  import android.graphics.RectF;  import android.util.Log;  import android.view.SurfaceHolder;  import android.view.SurfaceView;  import android.view.SurfaceHolder.Callback;  public class MySurfaceView extends SurfaceView implements Callback, Runnable {      private Thread th  new Thread(this);      private SurfaceHolder sfh;      private Canvas canvas;      private Paint paint;      private Bitmap bmp_old;      private Bitmap bmp_9path;      private NinePatch np;      public MySurfaceView(Context context) {          super(context);          this.setKeepScreenOn(true);          bmp_old  BitmapFactory.decodeResource(getResources(), R.drawable.himi_old);          bmp_9path  BitmapFactory.decodeResource(getResources(), R.drawable.himi_9path);          np  new NinePatch(bmp_9path, bmp_9path.getNinePatchChunk(), null);          //创建一个ninePatch的对象实例第一个参数是bitmap、第二个参数是byte[]这里其实要求我们传入          //如何处理拉伸方式当然我们不需要自己传入因为“.9.png”图片自身有这些信息数据          //也就是我们用“9妹”工具操作的信息 我们直接用“.9.png”图片自身的数据调用getNinePatchChunk()即可          //第三个参数是图片源的名称这个参数为可选参数直接null~就OK~          sfh  this.getHolder();          sfh.addCallback(this);          paint  new Paint();          paint.setAntiAlias(true);          setFocusable(true);      }      public void surfaceCreated(SurfaceHolder holder) {          Log.v(Himi, surfaceCreated);          th.start();      }      /**       * author Himi       */      public void draw() {          canvas  sfh.lockCanvas();          canvas.drawColor(Color.BLACK);          RectF rectf_old_two  new RectF(0, 50, bmp_old.getWidth() * 2, 120  bmp_old.getHeight() * 2);//备注1          RectF rectf_old_third  new RectF(0, 120  bmp_old.getHeight() * 2, bmp_old.getWidth() * 3,                  140  bmp_old.getHeight() * 2  bmp_old.getHeight() * 3);          // --------下面是对正常png绘画方法-----------          canvas.drawBitmap(bmp_old, 0, 0, paint);          canvas.drawBitmap(bmp_old, null, rectf_old_two, paint);          canvas.drawBitmap(bmp_old, null, rectf_old_third, paint);          RectF rectf_9path_two  new RectF(250, 50, 250  bmp_9path.getWidth() * 2, 90  bmp_9path.getHeight() * 2);          RectF rectf_9path_third  new RectF(250, 120  bmp_9path.getHeight() * 2, 250  bmp_9path.getWidth() * 3,                      140  bmp_9path.getHeight() * 2                   bmp_9path.getHeight() * 3);          canvas.drawBitmap(bmp_9path, 250, 0, paint);          // --------下面是.9.png图像的绘画方法-----------          np.draw(canvas, rectf_9path_two);          np.draw(canvas, rectf_9path_third);          sfh.unlockCanvasAndPost(canvas);      }      public void run() {          // TODO Auto-generated method stub          while (true) {              draw();              try {                  Thread.sleep(100);              } catch (Exception ex) {              }          }      }      public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {          Log.v(Himi, surfaceChanged);      }      public void surfaceDestroyed(SurfaceHolder holder) {          Log.v(Himi, surfaceDestroyed);      }  }  下图是模拟器中的效果图、        左边是正常png的缩放不同大小的情况右边是咱们的9妹处理过的“*.9.png”、娃哈哈怎么样 效果明显不一样吧   好啦到这里就结篇吧挺累的 写了三个多小时了....... 希望大家以后多多的利用 “9妹”哦、  (推荐大家订阅本博客因为咱的更新速度可是很快的~娃哈哈)
http://www.zqtcl.cn/news/683144/

相关文章:

  • 网站建设项目合同传奇手游网站
  • 如何学习网站建设app申请付费网站
  • 微网站开发平台案例重庆网站设计哪家公司好
  • 快递空包网站建设网站的首页怎么做的
  • 青海手机网站建设北京网站建设推荐华网天下
  • 网站网站建设公司孩子学编程网上课程哪家好
  • 跨境电商网站建设方案书江门网页制作
  • 门户网站建设定做如何使用域名访问网站
  • 做网站后台运营这个工作怎么样建设网站销售
  • 两学一做网上答题网站做网站域名是赠送的吗
  • 江苏住房城乡建设厅网站WordPress上传Excel
  • 广州淘宝网站建设济南高新区网站建设
  • 如何注册一个网站长沙的科技公司
  • 温州网络公司网站建设永久免费云linux服务器网页
  • 中国教育网站官网网站建设是半年的持久战
  • 为什么营销型网站比普通网站建站贵常州seo排名收费
  • 商贸公司寮步网站建设极致发烧学网站建设基础
  • 二手汽车手机网站模板四川百度推广排名查询
  • 做火情监控网站需要用什么系统做一个网站多少费用
  • 成都建设网站首页贺州网站建设
  • 硚口区建设局网站海绵宝宝的网页设计html源代码
  • 旅游网站建设合同成年做羞羞的视频网站
  • 海门网站建设制作道德建设 网站
  • 苏州 规划建设局网站网页设计师培训费用图
  • 怎么做视频解析的网站QQ空间可以建设网站吗
  • 视频网站 php源码甘肃 网站建设
  • 响应式网站和自适应便宜做网站8818
  • 湖南网站建设mxtia网站建设的流程图
  • 西安网站开发公司电话装修设计网站有哪些
  • 多少钱网站建设个人主页网页设计教程