Android命令行工具(1)——draw9patch

简介: 在程序开发中,为了界面更加美观,我们需要设置各种背景,比如布局背景、按钮背景等,但在不同屏幕尺寸的情况下,我们的背景图片可能要进行缩放,已适应新的屏幕显示,但这肯定就带来一个图片失真的问题,而这又将造成用户对产品的统一性体验较差,幸好Android对这方面早有考虑,那就是9Patch图片。

在程序开发中,为了界面更加美观,我们需要设置各种背景,比如布局背景、按钮背景等,但在不同屏幕尺寸的情况下,我们的背景图片可能要进行缩放,已适应新的屏幕显示,但这肯定就带来一个图片失真的问题,而这又将造成用户对产品的统一性体验较差,幸好Android对这方面早有考虑,那就是9Patch图片。本文将结合官方文档,来介绍下这方面的知识,算作自己的笔记。

9Patch图片是一种可缩放的位图文件,使用时Android系统将根据以该9Patch图片作为背景的View的内容来自动缩放9Patch背景图片。在Android系统中9Patch图片最常见的例子是Android Buttons9patch虽以.9.png作为文件名后缀但其仍然是一种标准的PNG图片,它的特别之处就在于在PNG图片四周围有一个宽度为1像素的边框,正是这4条边框决定了9Patch图片的缩放规则和内容显示规则。其中左上两侧的像素直线分别决定纵向和横向的缩放区域,而右下两侧的像素直线则共同决定了图片的内容显示区域。

要制作自己的9Patch图片,可以使用Android提供的9Patch命令行工具,该工具位于android sdk 安装路径下的tools目录下,可以通过双击draw9Patch.bat文件或者命令行来启动该工具。

打开draw9patch工具后可以将png图片拖进来,或者通过File>Open 9-patch...来添加要制作的png图片。


左侧窗格显示要制作9Patch的图片,可以看到图片的四周分别有1像素宽的边框,就是在这个边框中进行缩放和内容显示的设置。右侧窗格中的三幅图为效果预览,当你在左侧选定缩放区域和内容设置之后,就立刻会在右侧看到预览效果,这三幅图中,最上的用于纵向缩放效果预览、中间的用于水平方向的效果预览、最下的用于整体效果预览。

在左侧窗格中,可以通过在左上两侧的像素边框中点鼠标左键绘制像素来分别设置纵向和横向的缩放区域,在绘制好的像素上点右键将取消像素绘制。


左上控制缩放区域


右下控制内容显示区域

这里就不具体举例子了。

还有点要说的就是draw9Patch工具中的一些控制操作。

Zoom:用于缩放左侧窗格中的显示

Patch scale:用于缩放右侧窗格的显示

Show lock:选中后,鼠标在左侧窗格的图片上移过的时候,会显示不可编辑区域

Show content:用于在右侧窗格总标注内容可显示区域

Show patches:用于在左侧窗格标注可扩展区域

相关文章
|
Shell Android开发
解决Android的adb命令行报错Permission denied
解决Android的adb命令行报错Permission denied
1111 0
解决Android的adb命令行报错Permission denied
|
6月前
|
SQL 人工智能 移动开发
Android Logcat 命令行工具
Logcat 是一个命令行工具,用于转储系统消息日志,包括从您的应用使用 Log 类写入的消息。 logcat还是比较简单的,我们在此只记录一下我们日常工作可能会用的比较多的一些用法。
Android Logcat 命令行工具
|
6月前
|
SQL 人工智能 Java
Android 命令行工具简介
Android SDK 中包含了开发应用所需的多个软件包。本页列出了可供使用的最重要的命令行工具(按提供这些工具的软件包整理)。
|
数据可视化 开发工具 Android开发
【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read | 使用命令行提交代码 )
【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read | 使用命令行提交代码 )
228 0
【错误记录】Android Studio 向 GitHub 提交代码报错 ( Push failed: Failed with error: Could not read | 使用命令行提交代码 )
|
开发工具 Android开发
【Android 命令行工具】Android 命令行工具简介 ( 官方文档 | SDK 命令行工具 | SDK 构建工具 | SDK 平台工具 | 模拟器工具 | Jetifier 工具 )
【Android 命令行工具】Android 命令行工具简介 ( 官方文档 | SDK 命令行工具 | SDK 构建工具 | SDK 平台工具 | 模拟器工具 | Jetifier 工具 )
523 0
【Android 命令行工具】Android 命令行工具简介 ( 官方文档 | SDK 命令行工具 | SDK 构建工具 | SDK 平台工具 | 模拟器工具 | Jetifier 工具 )
|
Java Android开发 Kotlin
【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
376 0
【错误记录】记录 Android 命令行执行 Java 程序中出现的错误 ( dx 打包 PC 可执行文件报错 | dalvik 命令执行 kotlin 编译的 dex 文件报错 )
|
Android开发
【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
173 0
【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
|
Java Android开发 C++
【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )(二)
【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )(二)
153 0
|
Java Android开发 C++
【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )(一)
【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )(一)
175 0
【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( jni 中 main 函数声明 | 命令行处理 | jni 调用 lib7zr.so 函数库处理压缩文件完整代码 )(一)
|
Android开发
【错误记录】Android 中调用 Process 命令行执行指令 ( java.lang.IllegalThreadStateException: process hasn‘t exited )
【错误记录】Android 中调用 Process 命令行执行指令 ( java.lang.IllegalThreadStateException: process hasn‘t exited )
452 0