传统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开发中,实现"仿path下拉图片放大,放开回弹ListView"的效果,涉及到的知识点主要包括自定义View、ListView的适配器Adapter、动画处理以及手势检测。下面将详细阐述这些关键点。 首先,"仿path下拉图片...
在Android开发中,有时我们需要对显示的图片进行特殊处理,比如让图片呈现圆角或完全圆形。本知识点将深入探讨如何在Android应用中完美实现图片的圆角和圆形效果。 首先,我们来看如何实现图片的圆角效果。Android...
使用Android的多媒体API处理图片和视频,结合`EditText`进行文字输入,然后通过后端接口上传。 3. **好友系统**: 实现添加好友、查看好友列表、发送好友请求等功能。这涉及到数据库设计,可以使用`Room Persistence...
在Android开发中,图片处理是一项常见的任务,尤其是在创建交互式应用或者进行图像分析时。"图片二值化处理"是图像处理中的一个基础步骤,它能够将复杂的彩色图像转化为简单的黑白图像,使得图像的特征更加突出,...
在Android开发中,实现类似Path应用的界面效果是一项常见的需求,尤其对于那些追求用户体验和界面设计的开发者来说。Path以其独特的交互方式和美观的设计风格深受用户喜爱,其中按钮动画弹出选项的效果尤为突出。这...
这时,可以在事件处理方法中修改`Path`,然后调用`invalidate()`来通知系统重绘View。 在`PathView`这个示例中,可能是一个自定义的View类,继承自`View`,并重写了`onDraw()`方法,里面包含了上述的`Path`操作和...
一旦获取到图片的URL,我们可以使用`java.io`和`android.graphics`包中的类来下载并处理图片。 1. **下载图片** 使用`java.net.URL`和`java.io.InputStream`下载图片数据。创建一个`URL`对象,然后通过`open...
在Android开发中,实现类似Path应用的下拉图片放大及放开回弹效果,是一种常见的交互设计,能够提升用户的使用体验。这种效果主要涉及到ListView的自定义适配器、动画处理以及手势识别等技术。以下是对这个功能实现...
总的来说,这个压缩包可能包含了关于Android图片特效处理的源代码示例,涵盖了位图操作、滤镜效果、图形绘制、动画制作等多个方面,是Android开发者提升图片处理技能的好资源。通过学习和实践,开发者能够为自己的...
在Android开发中,图片处理是一项常见且重要的任务。Android图片处理涵盖了从加载、显示到编辑、裁剪等众多环节,而“不规则裁剪”则是其中的一个难点,它涉及到图像处理算法和用户交互设计。本资源提供的"Android...
该压缩包文件“Android高级应用源码-android 仿path 下拉图片放大,放开回弹 ListView.zip”包含了Android应用开发中的一个高级特性实现,即模仿Path应用的图片下拉放大及松手后回弹效果的ListView。这个功能在很多...
在Android应用开发中,获取用户设备上的图片或者通过相机拍摄新照片是常见的需求。随着Android系统的不断升级,尤其是从Android 4.4(KitKat)开始引入的存储权限管理变化,开发者需要采取不同的策略来适配不同的...
### Android九宫图图片处理详解 #### GridView与SimpleAdapter简介 **GridView** 是Android中用于展示网格状数据的布局控件。它适用于显示一系列按行和列排列的项目,如相册、商品列表等场景。当涉及到需要整齐...
在Android开发中,有时我们需要将一个布局转换为图片,例如为了实现分享到微信的功能,或者进行屏幕截图。本文将深入探讨如何在Android中实现“布局生成图片”这一技术,以及如何将其与微信分享功能集成。 首先,让...
在Android应用开发中,显示在线图片是一个常见的需求。本文将详细介绍如何在Android应用程序中加载并显示网络上的图片。首先,我们需要了解几个关键概念和技术: 1. **URL**: 用于定位网络资源的统一资源定位符。在...
在Android开发中,图片添加是一项常见的任务,涉及到用户界面的设计、资源管理以及图像处理等多个方面。本文将深入探讨Android中如何进行图片的添加,并结合标签"Android image add"展开相关知识点。 1. 图片资源...
在Android开发中,图片遮罩是一种常见的图像处理技术,它允许我们通过定义一个遮罩(mask)来改变图片的显示效果,通常...在实际开发中,结合Android的图像处理库如Picaso、Glide等,可以进一步提升图片处理的能力。
在Android开发中,GIF图片的处理是一项常见的需求,特别是在创建动态效果或者用户交互时。本文将详细讲解如何实现一个可以循环显示10张GIF图片的功能,这对于初学者来说是一次很好的学习机会。 首先,我们需要理解...
在Android平台上,图形与图像处理是一项关键技能,它涉及到用户界面设计、游戏开发、相机应用以及其他涉及视觉元素的移动应用程序。本主题主要涵盖Android系统如何处理图形和图像,包括基本概念、API使用以及实例...