之前进行的开发当中有涉及到9patch图片的使用,但较少,都是做好的图直接使用了,但最近出现了在Android studio里面使用eclipse项目的9patch时候,编译会报错。之前还没有搞清楚是图片的原因导致报错,后来才发现了,是由于Android studio里面多了对9patch图片的更精细的检查机制,导致之前做的“粗糙”的图片资源在studio上面不能够使用了。 因此必须自己动手修改或者重新制作哦9patch图片了。

在eclipse上面没有操作过9patch的制作,不过似乎需要自己安装工具之类的。但是在Android studio上面则更加方便了,大体步骤是:将项目的.png图片放到资源文件夹drawable下面,然后右键则出现带有“create 9patch file~”的选项了,如下图所示:

点击后会出现另一个让你选择保存9patch文件的目录和名称确认,这里直接默认就在drawable保存,名称也默认就是之前的.png图片变为.9.png图片就好了。然后就生成了这个.9.png图片的初始样本了,这个时候可以将之前的图片删掉了,不然编译的时候会报错“duplicate source”了。或者做好.9.png图片再删掉也可以。

点击~~.9.png的图片就自动进入到了编辑和查看状态了,这次编辑的是一张即时通信里面需要用到的图片,根据textview的内容长短要进行动态的拉伸,图片编辑环境如下:

最下面是预览和编辑窗口的大小调剂和左侧编辑效果预览的窗口大小调节。其实编辑9patch只要掌握四个边对应的黑线或者说黑点是什么意思就能够编辑出想要的效果了,之前我有点懵,因为感觉逻辑上面和自己的理解有点冲突,但是画了一张后就完全明白了。这里解释一下四个边上所画的黑线/黑点的意思(一个黑点就是一个像素位置,连续的添加几个像素的黑点就是一条线,就这个意思):

1.左边加上黑线区域表示整个图片在上下/纵向拉伸时候保证只有黑色区域的像素参与拉伸,其他地方都是原样,具体效果可以参考右侧的预览;

2.上边加上黑线区域表示整个图片在左右/横向拉伸时候保证只有黑色区域的像素参与拉伸其他地方都是原样,具体效果可以参考右侧的预览;

3,右侧加上黑线区域表示在上下拉伸时候整个图片中显示的文字等内容只在黑色像素区域内显示,其他地方不显示图片内的内容;

4,底部加上黑线区域表示在左右拉伸时候整个图片中显示的文字等内容只在黑色像素区域内显示,其他地方不显示图片内的内容;

因此可以总结为,左和上管理图片拉伸时候的图片自身拉伸变化的区域限制,而底部和右侧管理图片包裹的内容在拉伸变化时候显示区域的限制。

好了,自己做一张就知道怎么弄了。经过简单修改一下之后,应用到demo里面的效果如下图所示(下面两图左右消息对话框是做了处理的,但下面的发送消息框左图没有处理,右图进行了9patch处理,正好可以做个对比~_~):

Android studio下进行9patch图片的编辑相关推荐

  1. 借助Android Studio生成图标(图片)drawable文件夹下的xml文件

    目录 一.准备图标或者图片 二.AS新建Vector Asset 如标题所示,借助Android Studio生成图标(图片)的xml文件,存放在drawable文件夹下. 一.准备图标或者图片 本人 ...

  2. Android Studio kotlin编程实现图片滑动浏览 stepbystep

    1 基本介绍 参照 kotlin官网:使用 RecyclerView 显示可滚动列表的 案例实现 功能:采用RecyclerView 空间实现图片和文字的滚动浏览. 在下图显示的序列中,可以看到一个填 ...

  3. android创建布局文件,android学习——Android Studio下创建menu布局文件

    一.问题: android studio项目中没有看到menu文件夹: 在android studio项目中想要添加menu布局文件,一开始我的做法是:直接在res文件夹右键选择xml文件来添加,如下 ...

  4. Android Studio调用python读取图片(使用服务器paddlehub处理图片)

    Android Studio调用python读取图片 一.主要任务 二.环境配置 1.创建一个android studio项目 2.配置项目gradle 3.配置app下的gradle 三.demo测 ...

  5. Android Studio下的目录结构

    我们可以看一下Android Studio下的目录结构. 在Android Studio的左上角,可以切换不同的视图, 选择Android视图,可以查看Android Studio的工程目录结构,如下 ...

  6. Android studio 下 JNI 开发实例

    在AS中进行 NDK 开发之前,我们先来简单的介绍几个大家都容易搞懵的概念: 到底什么是JNI,什么是NDK? 何为"交叉编译"? 先看什么是 JNI?JNI 的全称就是 Java ...

  7. android studio .so混淆配置,Android Studio 下混淆 文件配置 有关问题 初探(一)

    Android Studio 下混淆 文件配置 问题 初探(一) 1.参考资料 https://stuff.mit.edu/afs/sipb/project/android/sdk/android-s ...

  8. Android Studio下项目构建的Gradle配置及打包应用变体

    Gradle简介   Gradle是一个自动化构建工具,采用Groovy的Domain Specific Language(领域特定语言)来描述和控制构建逻辑.具有语法简洁.可读性强.配置灵活等特点. ...

  9. 26.Android Studio下Ndk开发(ffmpeg导入Android studio以cmake方式编译的过程)

    Android studio 2.2开始支持cmake的方式进行jni开发,我在另一篇10.Eclipse下Ndk开发(ffmpeg解码)中写过Eclipse下编译ffmpeg的过程,但是现在几乎没有 ...

最新文章

  1. python的基础知识
  2. c++类的构造函数详解
  3. Node.js前置知识点(二):同步/异步
  4. pygame游戏开发入门例子
  5. activexobject对象不能创建_Oracle数据库用户管理之系统权限和对象权限
  6. php 标签页切换,vue.js实现标签页切换效果
  7. 如何转置_数据转置用选择性粘贴,图片呢?
  8. python中使用pip安装报错:Fatal error in launcher... 解决方法
  9. JQuery控制div外点击隐藏,div内点击不会隐藏
  10. SAXReader的使用
  11. java类库详解_【Java系列-4】Java常用类库_详解
  12. 小白入门 - PHP简介
  13. 十二种人生感悟(转贴)
  14. android 覆盖虚拟按键,解决Android 虚拟按键遮住了页面内容的问题
  15. CAD梦想画图中的“阵列命令”
  16. zookeeper启动报错Exiting JVM with code 3
  17. 软件测试颗粒度,测试用例之度——系列之颗粒度(上)
  18. 关于Python虚拟环境与包管理你应该知道的事
  19. windows10专业版 hyper-v
  20. Ubuntu 输入法设置

热门文章

  1. 2m分辨率土地利用分类数据集
  2. vant 日历插件slots_vant 日历组件 获取当前时间
  3. 约战精灵再临服务器维护,约战精灵再临进不了游戏怎么办_无法进入游戏解决方法...
  4. Fuzzing: Brute Force Vulnerability Discovery
  5. 2021秋招Java面试八股文让629人成功进入大厂,堪称2021最强
  6. Element Tree 树形控件自定义显示样式与hover事件绑定实现添加、删除和修改
  7. DBeaver,杀出重围!
  8. 辰视冯良炳博士演讲的2021长三角智能包装产业发展大会成功举办!
  9. 元宇宙遇到中国年,Wearable Dao“中国红”主题VOX作品征集
  10. 离线部署python包步骤