关于android的9path图片处理
来源:互联网 发布:手机淘宝微淘动态删除 编辑:程序博客网 时间:2024/05/01 01:37
关于android的9path图片处理
- 博客分类:
- Android那些事儿
传统UI开发中,如果背景的大小不一样,一般需要为每种大小都制作一张图片,这在button中尤为明显。当然我们也可以一小块一小块水平重复的画,也可以垂直的话。在android中专门有一种叫nine patch图片(以 9.png结尾)来解决背景大小不一样时,只用一张背景图片。
在android sdk的目录下,tools文件夹里头draw9patch.bat的专门处理9patch的工具。
打开一张png图片,我们可以在png图片最外面的空格画一个像素宽的黑线。图片左边黑线的高度决定了垂直拉升时的扩展区域,也即当垂直拉伸时,只有这个区域的图片会被拉伸。同理图片上边的黑线长度决定了水平拉升时的扩展区域。图片右边的黑线可以不画,默认是指可以压扁到0px,画上黑线后,垂直方向就只可以压扁到右边黑线的高度了。图片下方的情况也一样。
从中我们也可以理解为什么叫 nine patch,相当于把一张png图分成了9个部分,分别为4个角,4条边,以及一个中间区域,4个角是不做拉升的,所以还能一直保持圆角的状态,而2条水平边和垂直边分别只做水平和垂直拉伸,所以不会出现边会被拉粗的情况,只有中间用黑线指定的区域做拉伸。结果是图片不会走样。
一般配置好环境后,使用自带的draw9patch.bat都会遇上dos窗口一闪便消失的情况,使用命令行运行该批处理后,看到跑出以下异常:
- Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/jdesktop/swingworker/SwingWorker
- at com.android.draw9patch.Application$1.run(Application.java:48)
- at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
- at java.awt.EventQueue.dispatchEvent(EventQueue.java:633)
- at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
- at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
- at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
- at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
- at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
- Caused by: java.lang.ClassNotFoundException: org.jdesktop.swingworker.SwingWorker
- at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
- at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
- at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
- at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
- ... 9 more
这是因为Android在更新SDK之后并没有自动将它依赖的SwingWorker的lib文件下载回来,所以需要我们手动下载,然后放到指定位置,应该是在<您的sdk所在目录>/tools/lib/目录下,就OK啦,swing-worker-1.1.jar见附件:
- 关于android的9path图片处理
- 关于Android的图片处理
- Android—9Path图片的使用
- 关于Android.9图片的处理和注意事项
- Android关于图片处理的一些方法
- 关于Android图片处理的总结
- 处理9path图片边缘的小黑点
- Android中图片缩放9path图片的使用
- 关于图片的处理
- 求教一个android的关于图片处理的问题?
- 【Android】android中9 path图片
- android中关于图片的处理和显示
- 关于android·图片处理的集锦贴
- android中关于图片的处理和显示
- 关于Android中图片压缩(上传前的处理)
- 关于Java后台处理android上传图片的问题
- 关于Android中对图片进行模糊处理的方法
- Android 关于小米手机拍照图片返回路径的处理
- UVa 757 - Gone Fishing
- Javascript定义function的区别
- C++ 容器及选用总结
- Android 3D引擎之min3D--支持材质和UV贴图的objloader
- 彻查VS2010 其中一个cpp中的断点在调试运行时无效的问题
- 关于android的9path图片处理
- MySQL索引背后的数据结构及算法原理
- win32以动态链接库导出类及其成员变量
- __FILE__,__LINE__,FUNCTION__实现代码跟踪调试(linux下c语言编程 )
- MFC 分割窗体(Splitter Windows)
- dz 2级域名
- java/jsp/sql等相关学习vip网址(applet)----全是实例
- 中兴捧月大赛之方案探讨
- Windows 8 RTM强势出击