做项目的时候,素材图遇到点问题,然后老大大概给我讲了讲android下面图片格式.9.png和draw 9-patch的用法,感觉很清楚也很有用,所以记录一下。

原文地址请保留http://www.cnblogs.com/rossoneri/p/4024090.html

关于 9-patch的介绍我就不说了,网上一大堆。下面根据我做android项目的经历一点点来认识它的作用。

首先,先看看项目资源列表:

好了,这个文件夹放着我的项目资源。

那么你发现没有,这里面的图片有一个规律:凡是后缀为.9.png的图片都有黑边,而.png的图片就很正常。

用图片浏览器打开再看看:

这是正常图片(放大了好多)

这是9.png图片

可以看出来,9.png图片四周有黑色的线条。

这是为啥?以前我也不懂,反正照样用~

但今天做东西的时候在新的button设置background用的以前的资源图,然后button里面的字体就显示的不完全了,我就感到奇怪,想了解下这个图是怎么回事。

好了,出问题的图就不截了。当然这不是重点。

draw 9-patch工具就不介绍了,直接打开。路径在androidSDK下的tools文件夹下。

我的路径是/home/rossoneri/文档/Android/android-sdk-linux/tools (ubuntu下)

用terminal打开后先增加文件的可执行权限chmod +x

然后就可以直接打开

打开后就可以看到程序了:

然后我们拖一张9.png图片进去,变成这样:

好了,这下看的很清楚,四周有四条黑线,而且都是一个像素一个像素显示的。这图左边是当前图片,右边是按照当前设置:纵向拉伸,横向拉伸,纵横拉伸的效果图。如果选中show content,右边的效果图内部会有一个方块:

这个方块代表的是图片内部的text的显示范围,比如这个图用在button上面,button上设置的text就会填充在这个方块里,如果方块过小,那么text就无法显示完全。我遇到的就是这个情况。

好了,剩下的就是重点,左边的4条黑线分别是干什么用的。

太晚了先睡觉,明儿继续~

哦,这里说一下ubuntu的截图。首先可以直接按PrtSc键,当然这个截的是整个屏幕。

还有一个方法,ctrl+shift+PrtSc,这个可以自由截图,不过截的图需要在图片编辑器中粘贴出来才行。

我推荐的是shift+PrtSc,自由截图,截完直接弹出保存对话框,很方便的说(ubuntu14.04)


继续说那四条线

先说5,6两条线。

可以看到图片被分割成9块,橙色的四块1,2,3,4是四个角,这是固定不变的。也就是说不管控件或者说这张图是纵向拉伸还是横向拉伸抑或是横纵拉伸,这拉伸后的4个角跟现在看到的四个角永远是一样的。那他拉伸的是什么呢?就是图中的绿色区域。

先看黑线5吧,5位于图片的顶部,它的正下方有一个与之宽度相等的绿色区域,这个区域就是用来横向拉伸的区域,每次横向有拉伸的时候,就是对这个区域进行改变。但要注意一点,这个黑线的宽度不是用来决定可拉伸区域的宽度,而是用来调整两边边角的宽度。为什么?因为中间的区域本来就是用来拉伸的,要区别宽度有什么用呢?那么怎么改这个黑线长度?直接用鼠标左键在顶部一描就就好,鼠标右键用来擦除。当然,画线的时候要注意数好像素点数再画,保证左右对称嘛。

黑线6同理。

最后两条线,就看1吧。2同理。

这两条线就是控件上的内容的显示区域,1控制高度,2控制宽度。不过这图是会拉伸的,所以还是要这样理解,1是控制内容显示的地方距离上边和下边的距离,2自己去想了。

我遇到的问题就是因为控件高度比较低,而内容距离上下边距比较大,导致内容显示不完全。

哦对了,前面提过一个show content的按钮,其实就是显示出图像拉伸后里面内容可以显示的区域。

好了,知道了这些,你就可以自己去画图来满足你的需求了,就这么简单。

[Android] 修图工具Draw9patch使用小结(附ubuntu快捷截图方法)的更多相关文章

  1. 【转】Android开发工具--android-studio-bundle-141.2288178

    原文网址:http://www.androiddevtools.cn/ AndroidDevTools简介 Android Dev Tools官网地址:www.androiddevtools.cn 收 ...

  2. Android源码浅析(二)——Ubuntu Root,Git,VMware Tools,安装输入法,主题美化,Dock,安装JDK和配置环境

    Android源码浅析(二)--Ubuntu Root,Git,VMware Tools,安装输入法,主题美化,Dock,安装JDK和配置环境 接着上篇,上片主要是介绍了一些安装工具的小知识点Andr ...

  3. 最新版Android开发工具

    最新版Android开发工具 JUN 27TH, 2014 Android Tools ADT Bundle ADT Bundle包含了Eclipse.ADT插件和SDK Tools,是已经集成好的I ...

  4. 腾讯优测优分享 | Android性能测试工具化实现

    腾讯优测专业的移动云测试平台,自动化测试提供性能测试数据,云真机实时输出性能数据,让测试更简单! 1.Android性能测试介绍 提到Android性能测试,我们总免不了俗地要首先介绍下Android ...

  5. Android开发工具全面转向Android Studio(3)——AS project/module的目录结构(与Eclipse对比)

    如果AS完全还没摸懂的,建议先看下Android开发工具全面转向Android Studio(2)——AS project/module的CRUD. 注:以下以Windows平台为标准,AS以目前最新 ...

  6. Android开发工具全面转向Android Studio(2)——AS project/module的CRUD

    本文有些地方可能需要衔接Android开发工具全面转向Android Studio(1)——准备开发环境,读起来效果会更好. 这个世界很奇妙,所有的东西离不开CRUD,即增删改查.即使人本身也遵循这个 ...

  7. Android性能测试工具(一)之Emmagee

    Android性能测试工具(一) 之Emmagee Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具. 支持SDK:Android2.2以及以上版本 Emm ...

  8. 53. Android常用工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...

  9. android 破解工具

    来记录一下本人在平时工作中使用的android上的破解工具 静态破解: apktool: apk包 -> dex dex2jar和enjarify(google官方出品): dex->ja ...

随机推荐

  1. (转)【学习笔记】通过netstat+rmsock查找AIX端口对应进程

    原文:http://www.oracleplus.net/arch/888.html https://www.ibm.com/support/knowledgecenter/zh/ssw_aix_72 ...

  2. 在Postgresql中添加新角色(Role)

    Postgresql安装完成之后,默认会创建名为postgres的用户.角色(Role)和数据库(Database).而使用你自己原有的用户运行psql时会提示错误. bob@localhost:~$ ...

  3. StreamSets学习系列之StreamSets的Create New Pipeline(图文详解)

    不多说,直接上干货! 前期博客 StreamSets学习系列之StreamSets支持多种安装方式[Core Tarball.Cloudera Parcel .Full Tarball .Full R ...

  4. 全网最详细的Hadoop HA集群启动后,两个namenode都是active的解决办法(图文详解)

    不多说,直接上干货! 这个问题,跟 全网最详细的Hadoop HA集群启动后,两个namenode都是standby的解决办法(图文详解) 是大同小异. 欢迎大家,加入我的微信公众号:大数据躺过的坑  ...

  5. 执行HBase shell时出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not running yet错误解决办法(图文详解)

    不多说,直接上干货! [kfk@bigdata-pro01 bin]$ jps NameNode ResourceManager JournalNode HMaster DataNode HRegio ...

  6. JavaScript -- Document-open

    -----045-Document-open.html----- <!DOCTYPE html> <html> <head> <meta http-equiv ...

  7. 命令行下更好显示 mysql 查询结果

    在 linux命令行中,直接进行 mysql查询时,有时查询的结果字段较多,显示的效果就很不友好: 但 mysql支持以另一种方式来显示结果,如下: 普通是 SQL 是以分号 ; 结束的,如果改为 \ ...

  8. linux----之tcpdump小用

    1.通过抓包大致确定访问量 #time tcpdump -nn -i eth0 'tcp[tcpflags] = tcp-syn' -c 10000 >/dev/null 根据real时间判断访 ...

  9. Spring 3.1新特性之二:@Enable*注解的源码,spring源码分析之定时任务Scheduled注解

    分析SpringBoot的自动化配置原理的时候,可以观察下这些@Enable*注解的源码,可以发现所有的注解都有一个@Import注解.@Import注解是用来导入配置类的,这也就是说这些自动开启的实 ...

  10. 布局中的BFC---重点是前言

    一.前言 说实话,听到BFC这个概念我心里一阵咯噔,这到底是什么?有种似曾相识的感觉,但是又很模糊.问了一下度娘,看到张鑫旭的<CSS深入理解流体特性和BFC特性下多栏自适应布局>.呀,原 ...