GVKun编程网logo

Android Studio 之 制作 Nine-Patch 图片(.9图片)(android studio绘制图片)

8

如果您对AndroidStudio之制作Nine-Patch图片和.9图片感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解AndroidStudio之制作Nine-Patch图片的各种细节,并对

如果您对Android Studio 之 制作 Nine-Patch 图片.9图片感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Android Studio 之 制作 Nine-Patch 图片的各种细节,并对.9图片进行深入的分析,此外还有关于Android draw9patch 图片制作与使用详解、Android Nine Patch 图片及按钮背景、Android Studio "Arctic Fox" 2020.3.1 Patch 1 发布、Android Studio "Arctic Fox" 2020.3.1 Patch 2 发布的实用技巧。

本文目录一览:

Android Studio 之 制作 Nine-Patch 图片(.9图片)(android studio绘制图片)

Android Studio 之 制作 Nine-Patch 图片(.9图片)(android studio绘制图片)

 

•引言

  9.png 可以保证图片在合适的位置进行局部拉伸,避免了图片全局缩放造成的图片变形问题。

  但是由于Android Studio对于.9图片的检查更加严格,所以不符合AS要求的.9图片会带来很多坑。

  不过,AS也提供了制作点9图片的便捷入口,并且会检查你的.9图是否有不合理的拉伸区域。

•为什么要制作 .9 图片?

  Nine-Patch 图片到底有什么实际作用呢?

  我们通过一个例子来看一下;

  从网上下载一张气泡样式的图片 message_left.png,如下图所示:

    

  将该图片放置到 res/drawable 文件夹下;

  我们将这张图片设置为 LinearLayout 的背景图片,修改 activity_main.xml 中的代码,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/message_left">

</LinearLayout>

  将 LinearLayout 的宽度指定为 match_parent,然后,将他的背景图片设置为 message_left;

  现在运行程序,效果图如下所示:

    

  

  可以看到,由于 message_left 的宽度不足以填满整个屏幕的宽度;

  整张图片被均匀地拉伸了;

  这种效果非常差,也是后我们就可以使用 Nine-Patch 图片来进行改善;

•如何制作.9图片?

  首先《第一行代码中》的方法过时了,这项功能已经被集成到AS当中了;

  两种方式制作.9图片:

  1. 将图片放入到 drawable 文件夹中,将图片后缀改为.9.png,然后点击图片,直接进入点9图片制作视图
  2. 我们在 res/drawable 下找到这张图片,右击该图片选择 Create 9-Patch file 选项

      

      

    点击 OK 即可创建 message_left.9 图片,打开 .9 图片,如下图所示:

      

  我们可以在图片的四个边框绘制一个个的小黑点;

  使用鼠标在图片的边缘拖动就可以进行绘制:

    

   按住 shift 键拖动可以进行擦除:

    

   绘制完成后的效果图如下图所示:

    

•说明

  以下内容为转载内容,原文链接:如何在Android Studio中潇洒的使用.9.png

•在AS中使用.9.png要点

  1. 点9图片每个边都必须有黑线标记;
  2. 点9图片每个边只能一条黑线标记;
  3. 左边和上边的线用于限制可以拉伸的区域,右边和下边的线用于限制内容可以显示的区域;
  4. AS中可以直接制作点9图片;
  5. AS中点9图片要放在drawable中而不是mipmap中;

•.9.png中四条黑线的意义

  

  1:黑色条位置向下覆盖的区域表示图片横向拉伸时,只拉伸该区域
  2:黑色条位置向右覆盖的区域表示图片纵向拉伸时,只拉伸该区域
  3:黑色条位置向上覆盖的区域表示图片纵向显示内容的区域(在手机上主要是文字区域)
  4:黑色条位置向左覆盖的区域表示图片横向显示内容的区域(在手机上主要是文字区域)

•.9.png制作工具解析

  

  • Zoom : 左边原图的缩放比例
  • Patch scale : 右边 .9图 缩放后的效果
  • show lock : 勾选后,鼠标放到原图上,会显示红色斜线部分,表示 .9图 锁定的区域
  • show content :
    • 勾选后,右边图中的蓝色区域表示可以填充内容,绿色区域便是不可填充内容
    • 移动原图中右边和下边的修改可填充内容的区域,规则如上
  • show patches : 显示原图中可以缩放的区域
  • show bad patches : 显示原图中不规范的缩放区域
    • 比如带弧度中部分是不应该缩放的,如下图中红线标记的区域
    • 遇到这种情况,需要调整1,2位置的黑线,不标记弧度部分,红线就会取消

•.9.png的常见bug

  1. .9图片每个边只能一条黑线标记;
  2. .9图片每个边都必须有黑线标记;

 

Android draw9patch 图片制作与使用详解

Android draw9patch 图片制作与使用详解

Android draw9patch 图片制作与使用

理解一下4句话:

  1. 上边 决定左右拉升不变形
  2. 左边 决定上下拉升不变形
  3. 右边 设置内容高度区域
  4. 下边 设置内容宽度区域 

下面我拿6张图片分别举例说明:

1.QQ多彩气泡 聊天对话框也用.9图片制作

继承过环信IM即时通讯的同学可以去看他们的源码,聊天对话框也是这样用9patch制作的呢。

 

2.上边一般都是1个像素,根据这个点左右拉伸,如果右边画红线的2张图片就是拉伸的局域。

 

 

3.左边一般也是1个像素点,根据这个点上下拉伸,如右边画红线的2张图片就是拉伸的局域。

 

4.勾选Show content(显示内容),根据拉伸的部分就是显示当前内容的区域,右图紫色部分就是内容显示的区域。

 

5.同上

 

6.最终效果图

 

希望通过此文可以帮助大家,谢谢大家对本站的支持!

Android Nine Patch 图片及按钮背景

Android Nine Patch 图片及按钮背景

文章来自:http://hi.baidu.com/pengwenfu/blog/item/b0ca9bdeef2df61f622798d2.html

NinePatchDrawable 绘画的是一个可以伸缩的位图图像,Android 会自动调整大小来容纳显示的内容。一个例子就是 NinePatch 为背景,使用标准的 Android 按钮,按钮必须伸缩来容纳长度变化的字符

NinePatchDrawable 是一个标准的 PNG 图像,它包括额外的 1 个像素的边界,你必须保存它后缀为.9.png, 并且保持到工程的 res/drawable 目录中。如果你是从 APK 解压后得到的 *.9.png 文件,注意它是已将周围的空白像素去掉了的,在使用时必须再加上。

这个边界是用来确定图像的可伸缩和静态区域。你可以在左边和上边的线上画一个或多个黑色的 1 个像素指出可伸缩的部分(你可以需要很多可伸缩部分),它的相对位置在可伸缩部分相同,所以大的部分总是很大的。

你还有可以在图像的右边和下边画一条可选的 drawable 区域(有效的,内边距线)。如果你的视图对象设置 NinePath 为背景然后指定特殊的视图字体,它将自行伸缩使所有的文本来适应根据右 线与底部线设计好的区域(如果有的话),当然内边距线不包括其中,Android 可以使用左边的线与上面的线来定义一个 drawable 区域。

我们来澄清一下这两条不同的线,左边跟顶部的线来定义哪些图像的像素允许在伸缩时被复制底部与右边的线用来定义一个相对位置内的图像,视图的内容就放入其中。

image

可以使用 tools\draw9patch.bat 工具来编辑 *.9.png 图片,可以看出该工具非常直观的展示了图片在上下或左右拉伸时的效果以及作为背景时其内容显示的位置。

image

作 Nine Patch 为按钮背景使用方法:

<Button id="@+id/big"           
    android:layout_width="wrap_content"        
    android:layout_height="wrap_content"        
    android:text="text!"        
    android:textSize="30sp"        
    android:background="@drawable/my_button_background"/>

如果想要设置按钮在按下或者获得焦点时,有不同的背景图片,则可以将需要的背景图片放在 drawable 目录下(.9.png)格式,同时在 drawable 目录中新建一个 xml 文件(内容如下),android:background="@drawable/(XML 文件名)",这样就可以在不同状态显示不同的背景。

<?xml version="1.0" encoding="UTF-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/button_focused"/> 
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/button_focused" /> 
    <item android:state_focused="true" android:drawable="@drawable/button_focused" /> 
    <item android:state_focused="false" android:drawable="@drawable/button_defocused" /> 
</selector>

Android Studio

Android Studio "Arctic Fox" 2020.3.1 Patch 1 发布

Android Studio "Arctic Fox" 2020.3.1 Patch 1 现已发布。从 2020.3.1 起,Android Studio 开始启用新的版本号命名方案。事实上,2020.3.1 就是原计划的 4.3。谷歌称采用新的方案主要是为了与 IntelliJ 的版本对齐。此次更新是该系列的第一个补丁,主要用于修复 bug。

主要更新内容

  • Android Gradle 插件
    • TypedefRemover 使用 ASM5,并且与需要 ASM7 的 JDK 11 源不兼容
    • AGP 7.0.0 中 的 Groovy DSL 无法使用某些新的 DSL 块
    • AGP 7.0.0 稳定版在 libraryVariants.all {applicationId} 上抛出 ExternalApiUsageException
  • C++ 调试器
    • 在 Mac M1 上启动本机调试会话时出现 AS Arctic Fox 错误,“发现损坏的 LLDB 配置”
  • 资源管理器
    • (Windows) 新建 > 矢量资源 > 图片.svg:生成的 <vector> xml 中的 “减号” 字符无效
  • 收缩器 (R8)
    • 修复 BridgeHoisting 中的 NPE 问题
    • 升级到 7.0.0 后,R8 崩溃并显示 “内联后方法中遗留的意外使用” 错误

详情请查看更新公告。

Android Studio

Android Studio "Arctic Fox" 2020.3.1 Patch 2 发布

Android Studio "Arctic Fox" 2020.3.1 Patch 2 现已发布。从 2020.3.1 起,Android Studio 开始启用新的版本号命名方案。事实上,2020.3.1 就是原计划的 4.3。谷歌称采用新的方案主要是为了与 IntelliJ 的版本对齐。此次更新是该系列的第二个补丁,主要用于修复 bug。

主要更新内容

  • Android Gradle Plugin
    • 修复从 AS Arctic Fox Canary 7 升级到 Canary 8 时,Gradle 同步启动了 10 次的问题
    • 解码和可重现的构建
  • C++ build
    • 如果使用 tasks.whenTaskAdded 闭包,Android Gradle Plugin 7.0.0 不会在 APK 中包含 jniLibs
  • Lint
    • 修复 “lint check for lint 检查” 未运行的问题
  • Shrinker (R8)
    • 修复在 AGP7 中使用 R8 运行构建时出现 ClassNotFoundException 的问题

详情请查看更新公告。

关于Android Studio 之 制作 Nine-Patch 图片.9图片的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于Android draw9patch 图片制作与使用详解、Android Nine Patch 图片及按钮背景、Android Studio "Arctic Fox" 2020.3.1 Patch 1 发布、Android Studio "Arctic Fox" 2020.3.1 Patch 2 发布等相关内容,可以在本站寻找。

本文标签: