美文网首页
android 点9图片

android 点9图片

作者: BigBigArvin | 来源:发表于2017-05-11 14:32 被阅读155次

在android 开发中一般都会用到.9图片,那么具体它的原理是什么和如何去制作它了。
首先点9图片和其它普通的png图片是一样的会根据所放置的资源文件夹和屏幕的像素密度先进行缩放,只不过它本身加了一些特殊的处理,在显示的时候点9图会再进行局部拉伸,所以在放置点9时要将其尽量放在高的dpi文件夹中。

接下来看看下面这个图片
点9图片中真正控制图片拉伸的其实只有两个边就是上边和左边,如图所示很色线条部分就是对应的拉升地方,它在那个位置就代表那块会被拉伸,如图左边,如果当图片纵向拉伸时此事这块黑线所在区域就会被复制进行填充,同样的上边的黑色区域控制者横向拉伸的区域,,其实呢,无论是left和top,还是right和bottom都是把图片分成9块 (边角四块是不能缩放的,其他的四块则是允许缩放的),所以叫做9.PNG。那左上时控制拉伸区域的,那右下了?
那两边主要是控制显示区域的,右边的是控制纵向的显示区域,下边的是控制横向的显示区域,所以最后显示区域即两者重合部分。那说明是显示区域了?
打个比方textview ,如果设置了背景框,则文字输入的地方就只能是这块了,但是如果图片被拉伸则其显示区域也会跟随变大(相当于padding作用),且显示区域等于
1.如果只是横向拉伸 新的现实区域 = 旧的现实区域高*拉抻的宽度
2.如果只是纵向拉伸 新的现实区域 = 拉伸的高度*旧的的宽度。
3.横纵都拉伸 新的现实区域 = 拉伸的宽度*拉伸的高度;

20160907102522309.png

而且另外注意,拉伸区域,可以不是连续的,可以不止一块,而且是和自定义的边框线的长度成正比。(如上图所示)
而关于点9的实现原理大家可以自己去看源码。

大致如下 Bitmap在读取图像流数据的时候,会把判断图片的NinePatchChunk(9Patch数据块),如果NinePatchChunk不为空,则是NinePatchDrawable,NinePatchDrawable则又会交给NinePatch处理。

最后关于如何制作点9android sdk有自带的工具 Draw 9-patch,大家可以自己看官网。
另外也发现一个android app 同样可以在收集上使用并预览,叫NinePng 可以下载安装试试挺好用的

相关文章

  • android 点9图片

    在android 开发中一般都会用到.9图片,那么具体它的原理是什么和如何去制作它了。首先点9图片和其它普通的pn...

  • Android 点9图片设置

    绘制之前先来说一下.9图片的四条黑边的意义,每条黑边的意义都不一样。 顶部:在水平拉伸的时候,保持其他位置不动,只...

  • 点9图制作

    点9图简介 点九图,是Android开发中用到的一种特殊格式的图片,文件名以.9.png结尾。这种图片能告诉程序:...

  • android关于点九(.9)图片

    android中,.9的图片应用还是比较多的,.9图片和普通图片的区别就是指定了拉伸区域和内容的显示区域 来来来,...

  • 使用Android Studio制作.9图

    将png图片后缀改为.9.png,在Android Studio中双击该图片进入9-Patch界面。 接下来在图片...

  • Android studio .9.png图片问题

    Android studio开发中,.9.png图片文件问题。 开发中,我们要使用.9.png图片,如果直接改pn...

  • 点九图怎么切

    点九图,是Android开发中用到的一种特殊格式的图片,文件名以”.9.png“命名。这种图片能告诉开发,图像哪一...

  • Android之.9图片

    Android中的.9图片是先给一个没有黑边圈的图片: 然后在图片的边缘点击左键拉黑线,记住从起始点拉, 拉的时候...

  • 图片处理方法(截取、马赛克、拉伸)

    图片拉伸处理 实现类似Android中点9图的效果,拉伸图片不造成变形且不降低图片清晰度. 截取图片 截取图片的一...

  • Android .9 图片的处理

    Android Studio 3.2.x 对.9图片的处理越发严格,如果一个.9图片,单侧的描边,出现多段黑线,则...

网友评论

      本文标题:android 点9图片

      本文链接:https://www.haomeiwen.com/subject/clpotxtx.html