Android九点PNG(Nine-Patch)制作及应用

你可能之前还没有听说过Nine-Patch这个名词,它是一种被特殊处理过PNG图片,能够指定哪些区域可以被拉伸而哪些区域不可以。

现在我将手把手教你如何去制作一张九点PNG图像。

------------------------------------------Nine_Patch制作--------------------------------------------------

素材:

首先我们试试不用九点PNG为TextView设置背景图片,XML参数如下:

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/green"/>

最终效果如下:

可以看到,由于图片的宽度不足以填满整个屏幕的宽度,整张图片被均匀地拉伸了。

这种效果非常差,用户肯定是不能容忍的,这时我们就可以使用Nine-Patch图片来进行改善。

在Android SDK目录下有一个tools文件夹,在这个文件夹中找到draw9patch.bat文件

双击打开之后,把图片拖动到窗口中,将图片加载进来,如图所示:

我们可以在图片(左边)的四个边框绘制线段,线段内的部分就表示当前图片拉伸的区域,拉伸后的效果可以在视窗(右边)观看。

图片边缘被黑色线段覆盖的范围就是图片需要拉伸的范围,当上下左右都设定好范围之后,会形成一个九宫格的布局,这也是Nine-Patch名字的由来。

如果不小心画错了,按住Shift+鼠标左键就可以清除标记部分

图片拉伸的原则:保留细节,拉伸直线

保存图片,图片会自动添加一个.9.png的后缀,图片最终效果是这样的:

最后图像生成的黑线是什么鬼?不要激动,那是用于标记拉伸区域的特殊记号,如果没有这些黑线,这图片就与普通的PNG一样了。

等等,那是不是一张普通的PNG加上黑色标记线,就可以充当Nine-Patch图使用了呢?

除了标记线,要让Android识别这是Nine-Patch图片,还得有特殊的声明(.9.png)才行,注意不要更改文件的后缀名

图片命名规范:图片样式+制作者+编号(以保证不会与编译器冲突)

<TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/green_woider_01"
        android:gravity="center"
        android:text="你好,小娜"
        android:textColor="#333"
        android:textSize="18dp" />

重新运行程序,看看效果:

效果很棒不是吗?这样当图片需要拉伸的时候,就可以只拉伸指定的区域,程序在外观上也是有了很大的改进。

有了这个知识储备之后,试试下面的界面:

原文地址:http://www.cnblogs.com/woider/p/5121700.html

原文地址:http://www.cnblogs.com/woider/p/5121700.html

时间: 2024-10-06 10:37:23

Android九点PNG(Nine-Patch)制作及应用的相关文章

android 小说类源码制作教程源码下载

自己闲着没事制作了个小说软件用来自己看全本/连载小说, 翻页,字体大小,目录,自动更新 具体效果如下:奉献给大家下载查看... 下载APK效果查看地址: http://yun.baidu.com/s/1gdknYyJ 源码下载地址: http://download.csdn.net/detail/ainibaifenbai/7575817 android 小说类源码制作教程源码下载,布布扣,bubuko.com

Android:res之shape制作圆角、虚线、渐变

xml控件配置属性 android:background="@drawable/shape" 标签 corners ----------圆角gradient ----------渐变padding ----------内容离边界距离size ------------大小 solid ----------填充颜色stroke ----------描边 注意的是corners的属性bottomLeftRadius为右下角.bottomRightRadius为左下角 shape制作圆角 &l

Android App启动画面的制作

安卓软件启动时,都会有一个全屏的带LOGO,软件名称,版本号的启动屏幕.这个屏幕是怎么做出来的呢!!下面就一步一步的来! 一.新建项目 打开eclipse,新建一个Android项目,不建Activity.这时就出现一个空白的项目. 1.新建Activity文件 点击项目管理里的res,进入layout,右键点击NEW->Project->Android->Android XML Layout File 按步骤新建一个Activity的XML文件 我是选择新建了一个RelativeLay

Android 使用Fragment,ViewPagerIndicator 制作csdn app主要框架

转载  转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23513993 本来准备下载个CSDN的客户端放手机上,没事可以浏览浏览资讯,下载了官方的之后,发现并不能很好的使用.恰好搜到一个大神自己写的csdn的app,下载安装了一下,感觉很不错,也很流畅,基本满足了我们 日常浏览的需求. app效果图: 我会在博客中完整的介绍这个项目的制作,第一篇当然是整个项目的整体结构了. 效果图: 1.头部的布局文件,这个很简单: <?xm

Android .9.png图片的制作与使用

.9.png图片其实就是png格式图片,不过它比普通的png图片外围多了1px(像素)的边框,另外就是使用这种格式的图片可以实现背景自适应大小且不失真的效果.比如某些控件横竖屏切换后控件的样子就变形了,或者某些图片作为控件背景也变形,这会让人很郁闷.幸好.9.png图片可以提供这些需要的功能. 制作使用步骤: 1.制作属于你自己的png图片,一定要是png图片.可以自己PS制作,也可以解压其他应用的apk文件,用里面的图片资源,Android系统也有图片资源可以使用. 2.在android-sd

android Nine-Patch的使用(制作聊天界面必学)

近期在学习制作聊天的界面,设计到了图片的拉伸问题等等,参考了部分书籍学习了制作Nine-Patch图片. 首先先看不使用Nine_patch的代码与效果: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_p

Android笔记自定义View之制作表盘界面

前言 最近我跟自定义View杠上了,甚至说有点上瘾到走火入魔了.身为菜鸟的我自然要查阅大量的资料,学习大神们的代码,这不,前两天正好在郭神在微信公众号里推送一片自定义控件的文章--一步步实现精美的钟表界面.正适合我这种菜鸟来学习,闲着没事,我就差不多依葫芦画瓢也写了一个自定义表盘View,现在纯粹最为笔记记录下来.先展示下效果图: 下面进入正题 自定义表盘属性 老规矩,先在attrs文件里添加表盘自定义属性 <declare-styleable name="WatchView"&

Android之9图的制作

.9.PNG确实是标准的PNG格式,只是在最外面一圈额外增加1px的边框,这个1px的边框就是用来定义图片中可扩展的和静态不变的区域.特别说明,left和top边框中交叉部分是可拉伸部分,未选中部分是静态区域部分.right和bottom边框中交叉部分则是内容部分(其他部分就变相的相当于一个内边距,神似padding功能),这个参数是可选的. 详见: http://blog.csdn.net/lizzy115/article/details/7950959 draw9patch.bat其他功能说

Android App中使用Gallery制作幻灯片播放效果

http://www.jb51.net/article/83313.htm 我们有时候在iPhone手机上或者Windows上面看到动态的图片,可以通过鼠标或者手指触摸来移动它,产生动态的图片滚动效果,还可以根据你的点击或者触摸触发其他事件响应.同样的,在Android中也提供这这种实现,这就是通过Gallery在UI上实现缩略图浏览器. 我们来看看Gallery是如何来实现的,先把控件从布局文件中声明,只需知道ID为gallery. ? 1 Gallery gallery = (Gallery