ANDROID XML图像资源文件详细讲解(一)
图像资源在android开发过程中使用非常平凡。为了让自己在开发中,能轻松解决任何有关图像的问题,所以必须全面掌握最基本的知识点----各种类型的图像资源文件。
前言:
前言的前言:因为内容较多,此系列将分多篇文章记载。
1、关于图片格式
android使用的图片格式有3种:png、jpg、gif。
官方推荐使用png格式的图片。
jpg格式的图片是不被推荐使用的。
gif格式的图片是建议不使用的。
2、图片资源调用
1、通过resource ID进行Bitmap资源的调用,例如getDrawable(int)、android:drawable或者android:icon等,一般bitmap资源文件放在res/drawable-XXXX文件夹下,这也是推荐的存放位置,因为放在此文件夹下的图片资源android aapt工具会自动优化图片资源文件,例如将24-bit位图或者32-bit位图降色到8-bit位图,以节省内存,同时也不会失真。
2、如果你不希望对图片进行优化处理,可以将图片放到res\raw文件夹下
图像资源的种类
名称 | 元素标签 |
Bitmap File | <bitmap> |
Nine-Patch File | <nine-patch> |
Layer List | <layer-list> |
State List | <selector> |
Level List | <level-list> |
Transition Drawable | <transition> |
Inset Drawable | <inset> |
Clip Drawable | <clip> |
Scale Drawable | <scale> |
Shape Drawable | <shape> |
以上是android应用程序图像资源的所有类型。下面我们对每一种类型的使用进行说明。
<bitmap>介绍:
此标签可以单独使用在ImageView中,但是主要是结合Layer List或者State List等集合类型,作为其<item>使用。
使用格式为:
<span style="color:#333333"><span style="background-color:#ffffff"><span style="color:#333333"><span style="background-color:#f5f5f5"><?xml version="1.0" encoding="utf-8"?>
<bitmapxmlns:android="http://schemas.android.com/apk/res/android"android:src="@[package:]drawable/drawable_resource"android:antialias=["true" | "false"]android:dither=["true" | "false"]android:filter=["true" | "false"]android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" |"fill_vertical" | "center_horizontal" | "fill_horizontal" |"center" | "fill" | "clip_vertical" | "clip_horizontal"]android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] /></span></span></span></span>
属性解释如下:
xmlns:android
定义命名空间,android的所有根标签都需要定义其命名空间(http://schemas.android.com/apk/res/android),如果对XML比较了解的童鞋,这点应该很容易理解。不了解的童鞋可以先在网上查一下XML的命名空间。 android:src
设置bitmap的源文件。通过@drawable/XXXXX获取。 android:antialias
是否消除\优化锯齿。取值true或者false android:dither
消除抖动。简单点说就是当图像颜色值很丰富(比如通过高级的单反镜头,有216个色系),和手机显示屏能提供的颜色值(比如只有16个色系)不匹配 时,会自动进行补全优化,让画质更好。取值true或者false
android:filter
这也是一个改善、优化图片显示效果的属性。当位图被拉伸或者压缩时,使图片表面看起来平整光滑。 android:gravity
top |
显示在所在容器的顶部,不会改变图片的This is the default大小 |
bottom | 显示在所在容器的底部,不会改变图片的大小 |
left | 显示在所在容器的左边,不会改变图片的大小 |
right | 显示在所在容器的右边,不会改变图片的大小 |
center_vertical | 垂直居中,不会改变图片的大小 |
fill_vertical | 垂直拉伸,改变图片垂直方向的大小 |
center_horizontal | 横向居中,不会改变图片的大小 |
fill_horizontal | 横向拉伸,改变图片横向方向的大小 |
center | 居中,不会改变图片的大小 |
fill | 横向和垂直同时拉伸到容器大小。这是默认值。 |
clip_vertical | 附加属性,用于按照容器的边来剪切对象的顶部和/或底部的内容. 剪切基于其纵向对齐设置:顶部对齐时,剪切底部;底部对齐时剪切顶部;除此之外剪切顶部和底部.垂直方向裁剪。 |
clip_horizontal | 附加属性,用于按照容器的边来剪切对象的左侧和/或右侧的内容. 剪切基于其横向对齐设置:左侧对齐时,剪切右侧;右侧对齐时剪切左侧;除此之外剪切左侧和右侧.水平方向裁剪 |
android:tileMode
图像重复平铺.如果此属性的值不是disabled,则android:gravity属性将会失效。反之,只有此属性是disabled,设置
取值如下:
disabled:无效,这也是tileMode的默认值。
下面附上主要代码:
1、res/layout/activity_main.xml
<span style="color:#333333"><span style="background-color:#f5f5f5"><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"android:orientation="vertical"><ImageViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/bitmap_elements2"/></LinearLayout></span></span>
2、res/drawable/bitmap_elements2.xml
<span style="color:#333333"><span style="background-color:#f5f5f5"><?xml version="1.0" encoding="utf-8"?>
<bitmapxmlns:android="http://schemas.android.com/apk/res/android"android:src="@drawable/bbb"android:antialias="true"android:dither="true"android:filter="true"android:gravity="fill" //如果设置了tileMode,gravity将失效android:tileMode="mirror"/></span></span>
完毕。
ANDROID XML图像资源文件详细讲解(一)相关推荐
- Xamarin For Android 打包编译APK文件详细图文教程
原文链接 本文用于介绍Visual Studio 2012中Xamarin Mono For Android 如何打包编译APK文件,从如何创建Android项目,到如何启动调试,都会逐个配图讲解. ...
- Android 工程打包资源文件-OBB文件设置
Android 工程打包资源文件-OBB文件设置 设备/引擎:Mac(11.6)/cocos 开发工具:Android studio(4.1.2) 开发语言:java 开发需求:对工程的资源文件进行打 ...
- Android与iOS资源文件读写对比
在开发中,算法配置文件是作为独立资源文件存在,初始化的时候读取到应用中,因此有必要对Android和iOS系统下的资源文件读写有一定的了解. 首先要搞清楚的一点是,我们在PC上开发时使用的所有资源,移 ...
- java打包没有src_maven 打包时,src/main/java目录下的xml等资源文件没有打包进去的问题...
关于使用maven打包src/main/java中一些关于mybatis的xml都没有打包进去,导致war包启动不起来,在此记录一下,解决方法. 默认maven在src/main/java中只编译ja ...
- Server操作Mxd文件详细讲解
Server操作Mxd文件详细讲解 Server发布地图都是基于Mxd去发布的,这点与IMS使用axl文件差不多.一般来说,发布后mxd尽可能不要修改,或者在通过使用arcMap进行编辑后在重新发布. ...
- 解决 IDEA 中src下xml等资源文件无法读取的问题
该问题的实质是,idea对classpath的规定. 在eclipse中,把资源文件放在src文件夹下,是可以找到的: 但是在idea中,直接把资源文件放在src文件夹下,如果不进行设置,是不能被找到 ...
- c语言open函数打开文件方式,Linux中C语言open函数打开或创建文件详细讲解
Linux中C语言open函数打开或创建文件详细讲解 Linux中C语言open函数打开或创建文件详细讲解 头文件: #include #include #include 函数原型: int open ...
- android xml引用系统资源文件,android开发教程之系统资源的使用方法 android资源文件...
一.颜色资源 1.颜色XML文件格式 //resources根元素 #000000 //color子元素 2.引用格式: java代码中:R.color.color_name (这是一个int型的数 ...
- android中的资源文件
资源是你在代码中使用到的并且在编译时被打包进你的应用程序的附加文件.Android支持多种不同的文件,包括XML.PNG和JPEG文件.XML文件的格式决定于其描述的内容.这些文件将描述文件支持的类型 ...
最新文章
- 印度太阳能企业争取对中、台、马实施反倾销税
- Bitcoin 中的挖矿算法(5) 难度值举例说明
- [回归分析][14]--Logistic回归
- 带有骆驼,ActiveMQ,Elasticsearch的HL7关键用例
- RocketMq 消费消息的两种方式 pull 和 push
- @WebFilter注解
- 关于performSelector调用和直接调用区别
- 《跟我学Shiro》——张开涛(链接)
- VBS基础教程(收藏)
- keil uvision4 汉化破解版v4.12
- 苏轼 天涯 青砚1989
- 《看完就懂系列》谈谈数据埋点的原理与实现
- Refined Architecture阶段
- c4d安装完 只有语言英文的,为何我将显示语言设置成英文后开始菜单分类还依然显示为中文?...
- springboot POST 405 错误
- 【花雕体验】05 搭建行空板开发环境之SSH连接与Jupyter编程
- 直接执行SQL语句的快捷键是什么啊?嘎嘎
- 网易企业邮箱用Python发邮件
- iacr crypto 级别_上证综指率先确认日线级别下跌
- 不玩手机-自律习惯养成记