文档章节

android .9图片 讲解

Jonson
 Jonson
发布于 2014/05/09 18:17
字数 1149
阅读 160
收藏 15
点赞 0
评论 0
  • Android.9图片讲解(一)

  • 什么是.9图片

    至于什么是.9图片这里就简单提一下,即图片后缀名前有.9的图片,如pic.9.png、pic1.9.jgp,诸如此类的图片就称为.9图片。

    .9图片的作用

    ①.9图片的作用是在图片拉伸的时候特定的区域不会发生图片失真,至于哪些部分不会失真那么得看你的图片是如何绘制的。

    ②当一张图片作为背景时可以指定前景内容的显示区域。如图:

    \

    其中灰色是背景、绿色是前景。那么前景放在背景的具体位置是可以通过.9图片进行规定的。

    如何绘制.9图片

    ①利用android开发环境中提供的工具draw9patch。

    draw9patch如图 :

    \

    在“原始图像显示绘制区域”(这个名称自己取的)其实显示的是一张原始图片,并且在原始图片的四周添加了一个像素,通俗点说就是图片比原始图片扩大了一 圈,多出来的那一圈是透明像素。我们需要绘制的地方真是在那一圈透明像素上进行绘制。在绘制之前先讲讲那一圈透明像素的含义。如图:

    \

    四周分别命名为L、T、R、B。

    绘制在L的区域:用于拉伸的纵向区域。

    绘制在T的区域:用于拉伸的横向区域。

    绘制在R的区域:用于显示前景的纵向范围。

    绘制在B的区域:用于显示前景的横向范围。

    举例说明一下,如图 :

    \

    这个图会如何拉伸、如何显示前景呢?最简单的方法是直接看“拉伸预览区”,当然更快捷是方法是你能直接看出这个区域。

    拉伸区域

    如图:

    \

    红色框区域:表示纵向拉伸的区域,也就是说,当图片需要纵向拉伸的时候它会只指定拉伸红色区域,其他区域在纵向是不会拉伸的。

    绿色框区域:表示横向拉伸的区域,也就是说,当图片需要横向拉伸的时候它会只指定拉伸绿色区域,其他区域在横向是不会拉伸的。

    显然红色和绿色相交的部分是既会进行横向拉伸也会进行纵向拉伸的。

    前景的显示区域

    如图:

    \

    蓝色区域:表示前景能显示的纵向范围。即前景的最上面可以显示到什么地方,最下面可以显示的什么地方。

    黄色区域:表示前景能显示的横向范围。即前景的最左边可以显示到什么地方,最右边可以显示的什么地方。

    蓝色和黄色相交部分:表示整个前景能显示的区域。一个区域是矩形的,蓝色规定了上下边界,黄色规定了左右边界,两者共同当然也就规定了一个矩形区域。

    ②利用photoshop进行绘制。

    如何绘制?

    A、首先将画布四周放大一个像素。

    B、然后在四周绘制黑色像素(四周像素的意义参见①)。

    C、保存的时候改成.9图片的后缀名。

    何时使用ps绘制?

    A、图片很大的时候用draw9patch不是很好绘制,这个时候你就可以利用ps进行绘制。

    B、当你要做很多图标的时候,你可以利用ps中的动作功能来批量完成。

    小结:如果你熟悉ps的话某种程度上可以做到事半功倍。而且可以做一些模板,或者是录制一些动作。

    何时需要使用.9图片

    简单点讲,一张图片被拉伸以后会发生严重的图像失真时,那么就可以考虑.9图片。那么哪些时候这种图片格式是比较有效的呢?

    ①图片有圆角并且其他某一区域可以拉伸而不影响图片效果。

    ②一些图标需要适配不同的分辨率的设备。

    当然具体的使用还得看具体的要求,这里只是说了一下我最常用的,不常用的就没有列举了。

    PS:.9图片很多时候你知道怎么使用就可以了,至于为什么会产生拉伸,类似这样的问题你最好去问问google。


本文转载自:http://www.2cto.com/kf/201312/267361.html

共有 人打赏支持
Jonson
粉丝 21
博文 131
码字总数 17942
作品 0
肇庆
Android 性能优化:手把手教你优化Bitmap图片资源的使用

前言 在 开发中,性能优化策略十分重要 本文主要讲解性能优化中的Bitmap 使用优化,希望你们会喜欢 目录 1. 优化原因 即 为什么要优化图片资源,具体如下图:

Carson_Ho ⋅ 04/24 ⋅ 0

Android性能优化:手把手带你全面实现内存优化

前言 在 Android开发中,性能优化策略十分重要 本文主要讲解性能优化中的内存优化,希望你们会喜欢 目录 1. 定义 优化处理 应用程序的内存使用、空间占用 2. 作用 避免因不正确使用内存 & 缺...

codeGoogle ⋅ 05/08 ⋅ 0

Android应用程序窗口(Activity)的窗口对象(Window)的创建过程分析

每一个Activity组件都有一个关联的ContextImpl对象,同时,它还关联有一个Window对象,用来描述一个具体的应用程序窗口。与Activity组件所关联的窗口对象的实际类型为PhoneWindow。 那么创建...

lonamessi ⋅ 05/31 ⋅ 0

Android RxJava: 这是一份全面的 操作符 使用汇总 (含详细实例讲解)

前言 ,由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 开发者的欢迎。 如果还不了解RxJava,请看文章:Android:这是一篇 清晰 & 易懂的Rxjava 入门教程 如此受欢迎的原...

Carson_Ho ⋅ 05/31 ⋅ 0

(Mac)反编译Android APK详细操作指南[ApkTool,dex2jar,JD-GUI]

早在4年前我曾发表过一篇关于《Android开发之反编译与防止反编译》的文章,在该文章中我对如何在Windows平台反编译APK做了讲解,如今用Mac系统的同学越来越多,也有很多朋友问我能否出一篇关...

CrazyCodeBoy ⋅ 05/11 ⋅ 0

react-native 启动页android

最近做一个项目,要用到启动页这个来解决启动白屏,就弄了一下,虽然网上一堆教程,但是还是踩了一堆坑,现在搞出来了,记录一下 下面是插件的GitHub地址 https://github.com/crazycodeboy/...

望-惘-尣 ⋅ 04/23 ⋅ 0

Android性能优化:手把手教你如何让App更快、更稳、更省(含内存、布局优化等)

前言 在 开发中,性能优化策略十分重要 因为其决定了应用程序的开发质量:可用性、流畅性、稳定性等,是提高用户留存率的关键 本文全面讲解性能优化中的所有知识,献上一份 性能优化的详细攻...

Carson_Ho ⋅ 05/30 ⋅ 0

android中的深度学习——快速风格迁移

最近学了近一个月半月的深度学习,所以想检验一下学习成果。正好毕设是图像处理APP的实现,所以就把快速风格迁移的前馈神经网络通过Tensorflow for Android移植到了APP上面,作为滤镜快速风格...

codeGoogle ⋅ 05/24 ⋅ 0

Android Hybrid开发:这是一份详细 & 全面的WebView学习攻略

前言 现在很多里都内置了Web网页(),比如说很多电商平台,淘宝、京东、聚划算等等,如下图 那么这种该如何实现呢?其实这是里一个叫组件实现 今天,我将献上一份全面 & 详细的 攻略,含具体...

Carson_Ho ⋅ 06/19 ⋅ 0

0-2岁的app开发人员必读,Android开发APP前的准备事项

随着移动互联网的兴起,各行各业对移动应用的需求越来越大,从事APP开发的人也越来越多,APP开发行业可以说是方兴未艾。APP开发是比较复杂的事情,涉及产品、美工设计、服务器端开发、Andro...

传授知识的天使 ⋅ 06/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部