android学习笔记(17)使用9Patch图片作为你按钮背景

2014-12-10 16:17:44     20 人阅读    

      使用9Patch图片作为接钮背景
      当按钮的内容太多时,Android会自动缩放整张图片,以保证背景图片能搜盖整个按钮。但这种缩放整张图片的效果可能并不好。可能需要的情况是我们只想缩放图片中某个部分,这样才能保证按钮的视觉效果。


      为了实现只缩放图片中某个部分的效果,我们需要借助于9Patch图片来实现。9Patch图 片是一种特殊的PNG图片,这种图片以.9.png结尾,它在原始图片四周各添加一个宽度为1 像素的线条,这4条线就决定了该图片的缩放规则、内容显示规则。


      左侧和上侧的直线共同决定了图片的缩放区域:以左边直线为左边界绘制矩形,它覆盖 的区域可以在纵向缩放;以上面直线为上边界绘制矩形,它覆盖的区域可以水平缩放;它们 二者的交集可以在两个方向上缩放。


      右侧和下侧的直线共同决定图片了图片的内容显示区域:以右边直线为右边界绘制矩形,以下边直接为下边界绘制矩形,它们二者的交集就是图片的内容显示区域。


      Android为制作9Patch图片提供了 draw9patch工具,该工具位于Android SDK安装路径 的tools目录下,进入该目录双击draw9patch.bat文件,发现该程序无法正常启动,系统提示 java.lang.NoClassDefFoundError: org/jdesktop/swingworker/SwingWorker 异常。


     引起上面异常的原因是draw9patch.bat工具需要依赖于SwingWorker类,这个类在JDK 1.5以前需要中独下载swing-worker的JAR包,但从JDK 1.6以后,该类己经加入了 javax.swing 包下,但Android SDK还在使用早期的SwingWorker,而且Android 2.3又删除了 swing-worker-l.l.jar包,所以引发上面的错误。为了能正常启动draw9patch.bat,读者可以重 新下载Android 2.2 SDK,下载完成后将Android 2.2 SDK的tools/lib路径下的 swing-worker-1.l.jar 复制到 Android SDK 安装路径的 tools/lib 路径下即可。


      启动draw9patch.bat之后,通过该工具主菜单上的“File—Open 9 - Patch”菜单项打开一 张PNG图片,然后通过该工具来定义图片的缩放区域、内容显示区域。

 

     上面生成的图片保存到应用的res/drawable-mdpi路径下,主文件名任意,draw9patch.bat 自动将该文件的后缀保存为.9.piig。
定义9Patch图片之后,接下来在应用中定义两个按钮,分别使用原始图片和9Patch图片来作为Button的背景。页面 定义文件比较简单,此处不再赘述。


 


原文地址:http://www.itmmd.com/201412/294.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

android学习笔记(18)单选接钮(RadioButton )和复选框(CheckBox )介绍与启用   上一篇
下一篇  android学习笔记(16)按钮(Button )与固片按钮(ImageButton )組件的功能和用法

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!