Android中图片缩放9path图片的使用

原创 2015年11月17日 18:13:18

Android 9path图片

在Android系统中有一种特殊的图片格式,就是.9.png格式的图片。 这种特殊的图片是谷歌为了处理和优化不同的Android系统在在图片拉伸时而采用的一种图片的拉伸策略

我们知道,Android系统由于其开放的系统特性,被众多手机厂商所采用。但是也面临Android的碎片化的问题。不同手机的分辨率不同,屏幕大小不同,那么对于屏幕适配来说就会出现很大的问题。

一说到屏幕的适配,很大一部分的因素都是图片的显示问题,我们知道,一张图片在拉伸时如果拉伸的比例过大,会出现锯齿、模糊等现象。这样相同的app在不同的手机上所生的效果有的被拉伸变小,有的拉伸过于长。对于用户都有很不好的体验。所以谷歌为了处理这种情况的发生,在Android的sdk中为我们加入了一款工具叫做:draw9patch.bat

工具的界面:

这款工具可以将我们的图片进行缩放时控制所缩放的像素点。 

工具中为我们显示了图片在竖直、水平、正常显示时候的拉伸样子

我们可以在图片的边上来指定一些像素点,在图片缩放的时候只缩放所划定的区域(黑色点的连线)。而没有指定的像素是不会被缩放的。例如:我们指定边框的几个像素点: 

这个工具比较智能,当我们在图片的一边(例如:左边图片的边界)指定像素时,工具会自动把对应边的区域也指定(右边),所以我们在使用的时候只需要置顶左边和上边的边界即可。

在使用中,我们一般指定图片的上下左右的空白像素点,这样做的好处是,由于这些像素点没有像素,所以再拉伸的时候不会影响图片的效果。

关于Android studio 的错误问题:

Error:Can't have more than one marked region along edge.

出现这个异常是因为我在 .9 图的右侧画了两条线,由于 .9 图的上边界和左边界的划线是负责拉伸扩展的,而下边界和右边界划线则是内容区域,所以 .9 图不允许右侧和下边界有两条划线,而左边界和上边界则没有问题


版权声明:感谢阅读、评论、转载

9Patch实例&详解缩放区域与内容显示区域

在我们使用图片作为按钮的背景图时,android有时会自动拉伸缩放整张图片以使得背景图片能覆盖整个按钮区域,这就可能使得图片中某些我们需要保留原始尺寸部位扭曲变形,用9Patch工具对图片做相应处理就...

Android图片缩放库 Photoview 和 Gif 控件GifView 的使用

参考视频: http://www.jikexueyuan.com/course/1715.html 视频及源码下载: http://download.csdn.net/detail/zhaiha...

Android使用WebView显示网页(图片缩放)

上周写了一篇关于webview的博文:Android使用WebView显示网页(图片大小的处理及内容的自适应) 后来通过自己想的第三种办法实现了图片的适配,方法是设置html的img标签属性,把图片...
  • brian512
  • brian512
  • 2015年01月15日 14:25
  • 20632

Android PhotoView 支持图片缩放的使用

使用jar包实现图片缩放
  • s1e1s
  • s1e1s
  • 2015年08月31日 11:15
  • 488

android 图片缩放

  • 2015年04月07日 23:10
  • 1.29MB
  • 下载

android图片缩放

  • 2017年06月14日 09:30
  • 58KB
  • 下载

[Android] 触屏setOnTouchListener实现图片缩放、移动、绘制和添加水印

本文主要讲述使用触屏实现图片缩放、移动、添加水印等功能,所以该篇文章主要通过setOnTouchListener监听实现该功能,如何使用RelativeLayout进行布局,MotionEvent.A...

Android高仿QQ空间图片缩放源码

  • 2015年04月16日 10:58
  • 2.14MB
  • 下载

android 手势控制 图片缩放

  • 2012年09月12日 11:14
  • 194KB
  • 下载

android 自定義控件實現圖片縮放

public class MyImageView extends ImageView implements View.OnTouchListener {         public inte...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android中图片缩放9path图片的使用
举报原因:
原因补充:

(最多只允许输入30个字)