之前进行的开发当中有涉及到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. linux下查看cpu负载及分析
  2. CUDA C编程权威指南 第二章 CUDA编程模型
  3. 网站短信验证码接口收费标准
  4. PHP网站接入QQ互联实现QQ登录获取用户信息功能,超级简单,三个文件就搞定,无需费力地去了解官方提供的一大堆Demo文件
  5. 恢复计算机注册表命令,电脑的注册表如果损坏怎么恢复
  6. vtkContourFilter等值面(线)
  7. 变量命名神器 CODELF
  8. 如何实现图片转化为文字
  9. 靠谱的动漫培训班怎么选
  10. Vector人工智能机器人SDK使用笔记
  11. C++ Primer Plus(第6版)读书笔记--c++自定义函数
  12. 广告精准投放和大数据
  13. 深度:从U16整队出国培训看鲁能海外青训全面升级
  14. QrCodeUtil--二维码工具类
  15. oracle 内置程序包,建立程序包的方法,程序包中使用游标,常用程序包
  16. 通达信除权除息(tdx gbbq)导出为文本文件
  17. 实验8-存储过程和触发器的创建及应用
  18. 15 分钟用 ML 破解一个验证码系统
  19. 使用友盟集成第三方分享和登陆支付
  20. 想自主创业做外包,找甲方公司

热门文章

  1. 【接口百宝箱】免费好用的API大全
  2. 【ZZULIOJ】1125: 上三角矩阵的判断
  3. postgresql命令不生效解决办法
  4. 尤里的复仇(1)——掌控者
  5. linux bond 添加mac,如何解决双网卡bond0绑定模式物理成员口的mac地址和bonding接口mac地址不一致......
  6. 李开复:未来10年AI将取代人类?AI已让这7种职业加速消失
  7. 《Web应用基础》结业报告
  8. freebsd双线代理服务器架设
  9. Mapper文件中不等号的写法
  10. 用Maple求解常微分方程