文章目录

  • 背景
  • 拉伸对比
  • 定义与原理
  • 制作点九图片
  • 图片加工说明

背景

最近看了会书,然后有个知识点还是比较重要的。也对同学们的开发是有帮助的,这里简单的记录下。


拉伸对比

普通图片和九宫格图片拉伸效果对比如下图示:


从上面对比图中可看出,当普通图片拉伸后,背景图会变得模糊(左右两边的边缘线既变宽又变模糊了);但是用的九宫格图片拉伸后却不会。


定义与原理

为了解决图片过度拉伸后显示模糊的问题,Android 专门设计了点九图片。

点九图片的扩展名是 png,文件名后常带有 “.9” 字样。因为把一张图片划分成了3×3 的九宫格区域,所以得名点九图片,也叫九宫格图片。

如果背景是一个 shape 图形,其 stroke 节点的 width 属性已经设置了具体的像素值(如1dp),那么无论该 shape 图形被拉伸到多大,描边宽度始终都是1dp。

点九图片的实现原理与 shape 类似,即拉伸图形时,只对内部进行拉伸,不对边缘做拉伸操作。


制作点九图片

studio 已经集成了制作点九图片的功能,如下图示:

并在随后的对话框中单击 “OK” 按钮。接着 drawable 目录就会出现一个名为“btn.9.png” 的图片文件,双击该文件,右侧弹出点九图片的加工窗口如下图示:


左侧窗口是图片加工区域,右侧窗口是图片预览区域,从上到下依次是纵向拉伸预览、横向拉伸预览、未拉伸预览。

在左侧窗口图片四周的马赛克处单击会出现一个黑点,把黑点左右或上下拖动会拖出一段黑线,不同方向上的黑线表示不同的效果。


图片加工说明

  • 界面上边的黑线指的是水平方向的拉伸区域。水平方向拉伸图片时,只有黑线区域内的图像会拉伸,黑线两边的图像保持原状,从而保证左右两边的边框厚度不变。如下图:

  • 界面左边的黑线指的是垂直方向的拉伸区域。垂直方向拉伸图片时,只有黑线区域内的图像会拉伸,黑线两边的图像保持原状,从而保证上下两边的边框厚度不变。如下图:

  • 界面下边的黑线指的是该图片作为控件背景时,控件内部的文字左右边界只能放在黑线区域内。这里 Horizontal Padding 的效果就相当于 android:paddingLeftandroid:paddingRight。如下图:

  • 界面右边的黑线指的是该图片作为控件背景时,控件内部的文字上下边界只能放在黑线区域内。这里 Vertical Padding 的效果就相当于 android:paddingTopandroid:paddingBottom。如下图:

    在实际开发中,前两个属性使用的比较多,因为很多场景都要求拉伸图片时要保真。后两个属性一般用得不多,但若不知道,遇到问题还挺麻烦的。

比如某个页面的文字总是与顶端有段间隔,可是无论怎么调整XML和代码都没法缩小间隔,你有没有想过是点九图片导致的。因为点九图片在水平和垂直方向都设置了padding。


技术永不眠!我们下期见!

Android 中关于九宫格图片的那些事相关推荐

  1. 【Android 安装包优化】Android 中使用 SVG 图片 ( Android 5.0 以下的矢量图方案 | 矢量图生成为 PNG 图片 )

    文章目录 一.Android 5.0 以下的矢量图方案 二.矢量图生成为 PNG 图片 三.完整的 build.gradle 构建脚本 四.编译效果 五.参考资料 一.Android 5.0 以下的矢 ...

  2. 【Android 安装包优化】WebP 图片格式兼容与性能 ( Android 中的 WebP 图片格式兼容问题 | Android 中的 WebP 图片格式性能 )

    文章目录 一.Android 中的 WebP 图片格式兼容问题 二.Android 中的 WebP 图片格式性能 三.参考资料 一.Android 中的 WebP 图片格式兼容问题 在 Android ...

  3. python朋友圈评论_利用Python实现朋友圈中的九宫格图片效果

    前言 大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可. 说到切图,Python 就可以实现,主要用到的 Python 库为 Pillow,安装使 ...

  4. Android中如何根据图片url路径来获取网络图片

    原文地址:Android中如何根据图片url路径来获取网络图片 1.根据图片的URL路径来获取网络图片,核心代码如下: public static Bitmap getBitmap(String pa ...

  5. 【Android Gradle 插件】自定义 Gradle 插件优化图片 ① ( Android 中的 WebP 图片格式使用 | WebP 格式转换 | WebP 参考文档 )

    文章目录 一.Android 中的 WebP 图片格式使用 二.WebP 格式转换 三.WebP 参考文档 Android Plugin DSL Reference 参考文档 : Android St ...

  6. android中如何显示图片的一部分

    android中如何显示图片的一部分 分类: Android应用开发系列教程 Android应用开发技巧 2012-04-25 23:42 1728人阅读 评论(0) 收藏 举报 androidmat ...

  7. 怎样在android中添加背景图片?

    怎样在android中添加背景图片? 1.打开左侧的工程文件夹.打开res中的layout,双击main.xml. 2.一般的图片是jpg格式的,要把格式转化为png格式的. 3.把PNG格式的图片拖 ...

  8. android中图片圆角,Android中实现圆角图片的几种方法

    Android中实现圆角图片有多种姿势,不知你解锁了几种? 方法一:setXfermode法 此种方式就是再new一个相同尺寸的bitmap,然后使用paint.setXfermode(new Por ...

  9. 在android studio中制作九宫格图片

    本文介绍如何在android studio中制作一张九宫格图片. 1.选中准备进行处理的图片*.png,直接修改名为*.9.png.放入android studio 工程的drawable目录下.(. ...

  10. Android中怎么使图片显示

    android中经常到利用图片,利用图片时我们都是把图片放在drawable-xxx目录下,因为这里就是存储图片的地方,xxx不用理他,就是关于分辨率而已. 楼主在学习android的时候一直尝试把图 ...

最新文章

  1. python序列类型-python学习—序列类型、列表、元组
  2. 【手写系列】理解数据库连接池底层原理之手写实现
  3. 返回值类型与函数类型不匹配_golang基础语法,定义函数类型 为已存在的数据类型起别名...
  4. rhel6.5网卡初始化错误解决
  5. 天池 在线编程 队列检查(排序)
  6. Android官方开发文档Training系列课程中文版:通知用户之大视图通知
  7. 数列分块入门 4(LibreOj-6280)
  8. python 闭包和装饰器详解_实力讲解,一文读懂Python闭包与装饰器!
  9. 科技无障碍盛会举办,人工智能和创新成为高频词!
  10. 用Nginx分流绕开Github反爬机制
  11. isis协议_ISIS与OSPF之间有什么差异?
  12. 文字处理(WORD/WP)中,布局与绘制必然分开
  13. 服务器cp所以型号,云服务器cp
  14. 使用python判断文件是否是excel格式
  15. 数学建模学习:因子分析
  16. 13步设计出一个ITSM系统
  17. YOLO格式的DOTA遥感数据集(HBB水平框)
  18. codeforces 1567 A. Domino Disaster
  19. 华为Mate 20 Pro拆解、iPhone XR 拆解、iPhone XS/XS Max拆解
  20. 系统类毕业设计思路以及各种遇到问题的解决办法

热门文章

  1. 江苏科技大学计算机学院院长高尚,江苏科技大学计算机学院导师介绍:高尚
  2. 2021-04-21微信大数据对于精准营销的意义有哪些?
  3. 论文《Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation ...》阅读
  4. stm32f407的串口通信传输不了且串口调试软件无法显示的问题
  5. 北大邮箱客户端2018版配置方法(SMTP、POP3)
  6. camera-radar fusinon paper 速递
  7. 【OpenGL】OpenGL帧缓存对象(FBO:Frame Buffer Object)
  8. aop:aspectj-autoproxy /作用
  9. 电商平台如何实现分账功能
  10. 天地三才阵——【Java三大特征】