1 背景自适应且不失真问题的存在背景自适应且不失真问题的存在 制作自适应背景图片是 UI 开发的一个广泛问题 也是界面设计师渴望解决的问题 我 相信我们彼此都深有体会 比如 列表的背景图一定 但是列表的高度随着列表数据项会发生变化 标题栏的背景 无论横屏还是竖屏 高分辨率还是低分辨率 都能自动填充满 而且不失真等等背景问题 根据以往的经验 我们一般采用先切图后拼凑的做法 这种做法本来我想在这里和大 家介绍一下 其实有的时候还是很有用的 但是说起来会比较麻烦 就不说这个非重点了 略去 Android 针对这种情况 专门制作了一种 9 PNG 格式来解决这个问题 2 9 PNG 格式 格式 我不想在这里过多的讨论 PNG 格式的定义问题 但是 9 PNG 确实是标准的 PNG 格式 只是在最外面一圈额外增加 1px 的边框 这个 1px 的边框就是用来定义图片中可扩展的和 静态不变的区域 特别说明 left 和 top 边框中交叉部分是可拉伸部分 未选中部分是静态 区域部分 right 和 bottom 边框中交叉部分则是内容部分 变相的相当于定义看一个内边 距 神似 padding 功能 后面我会单独介绍一下 这个参数是可选的 如下图 在 Android 中 以 9 PNG 格式的图片未背景 则能够自定义拉伸而不失真 比如系统的 Button 就是一个 典型的例子 其实呢 无论是 left 和 top 还是 right 和 bottom 都是把图片分成 9 块 边角四块是不 能缩放的 其他的四块则是允许缩放的 所以叫做 9 PNG 3 使用使用 Draw9Patch jar 制作制作 9 PNG 图片之定义拉伸区域 图片之定义拉伸区域 前面已经了解到 9 PNG 格式的工作方式 下面我们使用谷歌提供的 Draw9Patch 运行 android sdk windows tools 目录下的 Draw9Patch bat 来制作 9 PNG 图片 第一步 准备要拉伸的图片 第一步 准备要拉伸的图片 非常小的一张图片 我希望以此为背景 中间部分填充文章内容 第二步 制作第二步 制作 9 PNG图片图片 打开 Draw9Patch 把图片拖进去 如下 默认的拉伸是整体拉伸 其实边框部分我们并不想拉伸 好 我们自己来定义拉伸区 域 如下图 然后点击 File 导出为 content 9 png 第三步 在第三步 在layout文件中使用制作的文件中使用制作的 9 PNG图片图片 新建工程 Draw9Patch 默认主 Activity 为 Draw9PatchActivity java 1 Override 2 public void onCreate Bundle savedInstanceState 3 4 super onCreate savedInstanceState 5 setContentView R layout main 6 我们把 content 9 png 文件拷贝到 res drawable 文件夹下 打开 res layout 目录下的 main xml 申明如下 01 02 09 16 如图 我们修改 text 01 02 09 16 如图 可以看出 边框非常的清晰 下图是未使用 9 PNG 的对比图 而且也不是我们要的效 果 到这里为止 我们已经基本会制作 9 PNG 图片了 为了知识体系的全面性和深入性 我们继续 4 使用使用 Draw9Patch jar 制作制作 9 PNG 图片之定义内容区域 图片之定义内容区域 是不是觉得文字和边距挨的太近 好 我们使用 right 和 bottom 边的线来定义内容区 域 来达到增大内边距的目的 我们定义了一个很小的内容区域 其他的地方则自动充当边框 从而使内边距显的很 大 如下图 在这里 我要特别说明 一开始为了增大内边距 很容易惯性思维 在中 申明 android padding 10dip 之类的 我在这里劝告朋友们不要这么做 一是你将无法 预知你的显示 二是这比较混淆 因为设置内容区域就是确定 padding 所以我在前面部 分说他们是神似 我个人认为通过内容区域设定 padding 比在布局 xml 中定义 padding 更 优雅 更简洁 关于 Draw9Patch 工具的其他使用说明 我在次不再累述 因为要说的话太多 为了 节省篇幅 请参考官方文档 5 制作制作 9 PNG 的高级技巧 的高级技巧 对于初学 Draw9Patch 的人来说 这可以算是高级技巧 那就是

展开阅读全文

android图片放大失真,Android中解决图片文字放大失真的问题相关推荐

  1. Android 如何从系统图库中选择图片

     这几天我都在做Android的App,同时学习它的API,我将分享一些我学到的东西,比如: 如何从系统图库中选择图片. 首先,让我们来看看如何将手机系统图库集成到你的App中,然后再从图库中选择 ...

  2. Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/18730223),请尊重他人的辛勤劳动成果,谢谢! 写这篇文 ...

  3. Android实战场景 - 保存WebView中的图片到相册

    去年同事写了一个 "在H5中保存图片到相册" 的功能,虽然有大致实现思路,实现起来也没问题,但是感觉同事考虑问题的很周全,当时候就想着去学习一下,但是项目太赶没顾得上,索性现在有时 ...

  4. Android程序如何在代码中改变图片原有的颜色

    最近一边找工作一边完善之前的项目.之前安卓初中级的项目是模仿酷狗音乐播放器的.下载一个apk文件,改后缀,解压,然后根据官方应用的布局,用得到的图片照着做出来.记得酷狗首页有好几种主要图标,解压后得到 ...

  5. 浏览器打开服务器上的图片无法显示,网页中的图片打不开怎么办?原因与解决办法...

    最近有网友问小编这样一个很泛的问题:网页中的图片打不开怎么办?对于这个问题,其实导致的原因有很多,但也很好排除原因,主要从网络,网页,平台等当面综合去分析,就很容易可以找到答案.以下是小编对网页中的图 ...

  6. ArcGis如何插入图片_在word中插入图片,如何避免失真模糊?实用文档建议收藏...

    插入图片 在WORD文档中插入图片是一个相当常用的操作. 一般通常的做法,是使用工具截图或在其他工具中复制的图片类内容,然后在WORD文档中粘贴出来. 还有一种做法,是使用功能区"插入&qu ...

  7. HTML怎么设置自动滚动的图片,转:HTML中让图片滚动的marquee标签的使用方法

    实例: 需要滚动的文字 需要滚动的文字 也可以程序代码 也可以是图片 说明: 1.中间的内容可以为 文字,图片,也可以是由程序生成的文字或图片 2.onMouseOut="this.star ...

  8. linux jpg图片转base64,html中的图片直接使用base64编码后的字符串代替

    最近来了一个网页,里面有图片,但是却没有引用外部的图片资源,很好奇.查看代码后发现,里面的图片是使用base64编码后的字符串代替了,这个叫做Data URI scheme. Data URI sch ...

  9. html5怎么设置表单居中显示图片,如何将html5中的图片设置居中?图片居中的代码!...

    在各种形形色色的网页中少不了的就是图片了,在使用和浏览的时候我们看到都是文字的话肯定是不好受的,那么这次就来说说如何将html5中的图片设置居中,下面是小编分享的一些有关于在 html5 中图片如何居 ...

最新文章

  1. js自定义函数及参数问题
  2. tableau必知必会之学做时尚的环状条形图(跑道图)
  3. asp.net core轻松入门之MVC中Options读取配置文件
  4. 在asp.net中做视频转换,将各种视频文件转换成.flv格式
  5. 报表通过url向数据集传参
  6. Python中的numpy.ones()
  7. 毕业设计So Easy:基于Java Web学生选课系统
  8. 浅谈工程总承包项目WBS的重要性与创建方法
  9. goldengate中添加同步表的操作
  10. 一盆惨遭毒手的肉——记,那一次和小鲜肉的邂逅
  11. 汉子转拼音和拼音首字母
  12. 计算机软件指数代码是多少,指数代码列表
  13. 巨简单 在eclips上面新建一个网页动态项目
  14. 计算机硬盘类型及特点,硬盘有几种类型其特点分别是什么
  15. 02139计算机信息检索-第8章.互联网信息检索策略、技巧与提高【思维导图】
  16. Linux下dota2启动失败解决办法
  17. 汉字的经典对白--感受一下汉字的魅力!
  18. 利用微信小程序weui库的SearchBar组件实现简易搜索功能
  19. 轴承设计c语言程序,轴承代号组成和编制规则大全
  20. 笔记本win7系统安装vm虚拟机安卓5.1系统软件闪退求助大神

热门文章

  1. json解析工具之jackson的常用实例
  2. 中国火炬统计年鉴(2008-2021)
  3. cnpm报错 : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本
  4. win7支持分屏显示
  5. 如何计算机床水箱大小,冷水机水箱容量计算
  6. excel无法打开文件怎么解决
  7. matlab中用imnoise向图像中加入特定高斯半径的噪声
  8. 三菱Q系列PLC编程TCP Socket套接字程序
  9. 口袋之旅html5超强账号,口袋之旅h5高级账号,h5裂空座多少高级狩猎卷
  10. db4o面向对象数据库::NoSQL