ANDROID资源文件【转】
1、 资源包括:文本字符串、图像和图标、音频文件、视频和其他应用程序使用的组件。
2、 在Android工程中,Android资源文件是同Java类文件分开存储的,大多数常见的资源类型存储在XML中。你也可以将原始数据文件和图形作为资源来存储。
3、 Eclipse下默认的Android资源目录
|
资源子目录 |
说明 |
|
/res/drawable |
图形资源 |
|
/res/layout |
用户界面资源,Widget |
|
/res/values |
简单数据,如字符串、颜色值 |
说明:当你向工程资源目录/res中加入新的资源时,插件将会探测到并自动使用AAPT工具在后台编译这一资源,以便能在应用程序中访问它。
4、 资源文件的类型
资源文件存储在Android工程的/res目录下,并且严格(理由充分时可以更改)存储于各自的子目录和文件中。资源文件的名称必须为小写且要求简单(仅由字母、数字和下划线构成)
|
资源类型 |
所需目录 |
文件名 |
适合的关键XML元素 |
|
字符串 |
/res/values/ |
strings.xml |
<string> |
|
字符串数组 |
/res/values/ |
arrays.xml |
<string-array> |
|
颜色值 |
/res/values/ |
colors.xml |
<color> |
|
尺寸 |
/res/values/ |
dimens.xml |
<dimen> |
|
简单Drawable图形 |
/res/values/ |
drawables.xml |
<drawable> |
|
位图图像 |
/res/drawable/ |
例如:img.png、img.jpg、等 |
支持的图形文件或xml文件定义的drawable图形 |
|
动画序列(补间) |
/res/anim/ |
如:fancy_animl.xml、 more_options.xml |
<set><alpha><scale> <translate><rotate> |
|
菜单文件 |
/res/menu/ |
如、my_menu1.xml |
<menu> |
|
XML文件 |
/res/xml/ |
如、some.xml |
由开发人员自己定义 |
|
原始文件 |
/res/raw/ |
如、some_audio.mp3 main_video.mp4、some_text.txt |
|
|
布局文件 |
/res/layout/ |
如、start_screen.xml |
多种定义 |
|
样式和主题 |
/res/values/ |
styles.xml、themes.xml |
<style> |
注意:某些资源文件,如:动画文件和图形,是根据它们自己的文件名来引用的,所以要适当地对它们进行命名。R.drawable.flag
5、 存储不同的资源文件时,需要注意事项:
1> 存储String类型的文件。每一个xml文件都要包含:
|
<?xml version="1.0" encoding="utf-8"?> <resources> 里面可以是:<string>、<color>等 </resources> |
2> 存储图形、动画、菜单和文件
可以图形、动画、菜单、文件任意的xml文件和原始文件作为资源来存储,这些资源不存储在/res/values/下,而是存储在不同的文件夹下。
6、 引用资源文件
|
String myString = getResources().getString(R.string.string标签标签name属性的名字); int myColor = getResources().getColor(R.color.color标签name属性的名字); float myDimen = getResources().getDimension(R.dimen.dimen标签name属性的名字); |
1> 使用String(字符串)的资源
在xml文件中使用String资源时,在包含撇号或单引号的字符串需要进行转移或使用双引号括起来。
strings.xml格式如下
|
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, MainActivity!</string> <string name="app_name">开始学习Android知识</string> </resources> |
(1)、对于字符串资源,可以加入三种具有HTML风格的属性:<b>、<i>、<u>分别表示加粗、斜线和下划线。
<string name="txt"><b>加粗</b>,<i>斜线</i>、<u>下划线</u></string>
(2)、使用格式化的字符串
创建带有格式化的字符串,但是你需要 加粗、斜体和下划线进行转义。
<string name="winLose">Score:%1$d of %2$d! You %3$d.</string>
<string name="winLoseStyled">Score: %1$d of %2$d ! you &lt;i>%3$s &lt/i>.</string>
引用:
使用下面的格式的格式会将HTML风格属性从字符串中被剔除
String myStrHello = getResources().getString(R.string.txt);
CharSequence myBoldStr = getResources().getText(R.string.hello);
载入一个格式化得字符串(需要确保所有的格式变量都已经被转义):
String resultText = String.format(myStrHello, 5,5,escapeWin);
在Activity中引用字符串数组:
strings.xml文件中的内容:
|
<string-array name="flavors"> <item>Vanilla</item> <item>Chocolate</item> <item>Strawberry</item> </string-array> |
Activity中的代码:String aFlavors[] = getResources().getStringArray(R.array.flavors);
2> 使用颜色(RGB颜色值)
RGB颜色值始终以”#”开头,另外可以给出alpha控制透明度,
|
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="text_color">#F00</color> </resources> |
颜色资源事实上是一个整数。
3> 使用尺寸
|
测量单位 |
说明 |
所需的资源标记 |
示例 |
|
像素 |
实际的屏幕像素 |
px |
20px |
|
英寸 |
物理测量单位 |
in |
2in |
|
毫米 |
物理测量单位 |
mm |
2mm |
|
点 |
普通字体测量单位 |
pt |
14pt |
|
密度独立像素(density-independent pixels) |
相对于160dpi屏幕的像素 |
dp |
2dp |
|
比例独立像素(scale-independent pixels) |
对于字体显示的测量 |
sp |
14sp |
注意:英寸是长度单位。1 英寸= 2.539999918 厘米(公分)。
尺寸资源实际上是最简单的浮点值。
float myDimen = getResources().getDimension(R.dimen.dimen标签name属性的名字);
4> 使用简单的Drawable资源
使用Drawable资源类指定一个简单的带颜色矩形。
|
<?xml version="1.0" encoding="UTF-8"?> <resources> <drawable name="red_rect">#F00</drawable> </resources> |
引用:
ColorDrawable myDraw = (ColorDrawable)getResources().getDrawable(R.drawable.red_rect);
5> 使用图像
|
支持的图像 |
说明 |
扩展名 |
|
便携式网络图像 |
推荐的格式(无损) |
.png |
|
9格拉伸图像 |
推荐的格式(无损) |
.9.png |
|
联合图像专家组 |
可接受的格式(有损) |
.jpg .jpeg |
|
图形交换格式 |
不鼓励的格式 |
.gif |
(1) 使用9格拉伸图像
手机屏幕拥有各种不同的尺寸,想象一个可以根据不同的屏幕尺寸和方向或者不同长度的文字调整大小的图像。它是非常方便而适用。
使用步骤:
A、运行 Android SDK Tools --àdraw9patch.bat文件
B、将一个png文件拖入左侧的面板中
C、选中左侧底部的Show patches【斑点】
D、将Patch scale设置为合适的值(比能够看见标记结果值稍大)
E、沿着图像的右边沿单击,以设置水平“格”引导
F、沿着图像的上边沿单击,以设置垂直“格”引导
G、在右侧面板中查看结果,移动“格”导引知道图像按照预期的结果进行拉伸。
H、要删除一个“格”导引,按住“Shift”键在导引的像素(黑色)上点击即可。
I、.9.png为扩展名保存图像。
(2)通过程序引用
图像资源(BitmapDrawable):通过ID即可设定用户界面Widget的属性。
A、如果你把flag.png放入/res/drawable目录中,并且向主布局中加入ImageView Widget
ImageView flagImageView = (ImageView)findViewById(R.id.imageView01);
flagImageView.setImageResource(R.drawable.icon);
B、直接访问BitmapDrawable对象
BitmapDrawable bitmapFlag = (BitmapDrawable)getResources().getDrawable(R.drawable.icon);
int iBitmapHeightInPixels = bitmapFlag.getIntrinsicHeight();
int iBitmapWidthInPixels = bitmapFlag.getIntrinsicWidth();
C、使用九格图像
调用getDrawable方法返回一个NinePatchDrawable对象。
和BitmapDrawable使用类似
6> 使用菜单
ANDROID资源文件【转】的更多相关文章
- Android资源文件简介
Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, 资源 ...
- 【转】关于Android资源文件中出现百分号的问题
关于Android资源文件中出现百分号的问题 分类: Android JAVA2014-08-01 16:53 1345人阅读 评论(0) 收藏 举报 ANDROID格式化资源文件 目录(?)[+ ...
- 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19913755 . 一. Android资源文件简介 1 ...
- Android 资源文件命名与使用
[推荐]资源文件需带模块前缀 [推荐]layout 文件的命名方式 Activity 的 layout 以 module_activity 开头 Fragment 的 layout 以 module_ ...
- Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
一. Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, ...
- Android资源文件说明
一. Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, ...
- android 资源文件
系统文档:http://developer.android.com/guide/topics/resources/available-resources.html 1. 系统下资源文件夹的名字是固定的 ...
- [置顶] Android资源文件分析
1)修改开机默认壁纸 Android开机默认资源文件为:frameworks/base/core/res/res/values/config.xml 我们找到wallpaper行: <strin ...
- 003.android资源文件剖析(Resources)
android的资源文件使用的重要性,不言而喻.让我们从潜到深逐渐来了解吧. 一:android的基本资源: 1.字符串资源 android的资源文件保存在:res\values\ 2.布局资源 an ...
随机推荐
- MFC 双缓冲加载背景
首先定义DCmemDc和Bitmap CDC DCmemDc: CBitmap memBitmap; CBitmap *oldBitmap; 然后创建一个适应当前内存的DCmemDc CDC * dc ...
- docker 配置桥接网络
2.5 docker配置桥接网络(上): 为了使本地网络中的机器和Docker 容器更方便的通信,我们经常会有将Docker容器 配置到和主机同一网段的需求. 这个需求其实很容器实现, 我们只需要将D ...
- Unix/Linux环境C编程入门教程(18) kali-linuxCCPP开发环境搭建
1. Kali linux是BT5的晋级版本,用于信息安全.基于Debian7内核.新建虚拟机. 2. 选择默认虚拟机 3. 选择稍后安装操作系统 4.选择Linux Debian7 64位,因为Ka ...
- 【转载】详解java类的生命周期
原文地址:http://blog.csdn.net/zhengzhb/article/details/7517213 引言 最近有位细心的朋友在阅读笔者的文章时,对java类的生命周期问题有一些疑惑, ...
- JQuery(下)
26.jQuery 中的 DOM 操作 )DOM(Document Object Model—文档对象模型):一种与浏览器, 平台, 语言无关的接口, 使用该接口可以轻松地访问页面中所有的标准组件 ) ...
- mac隐藏或显示文件
1,显示方法:在“终端” 输入命令 defaults write com.apple.finder AppleShowAllFiles TRUE killall Finder 重启Finder,系统隐 ...
- SQL整理3
一. 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...
- Java面试题之Class.forName的作用
按参数中指定的字符串形式的类名去搜索并加载相应的类,如果该类字节码已经被加载过,则返回代表该字节码的Class实例对象,否则,按类加载器的委托机制去搜索和加载该类,如果所有的类加载器都无法加载到该类, ...
- android的Log日志打印管理工具类(一)
android的Log日志的打印管理工具类: package com.gzcivil.utils; import android.util.Log; /** * 日志打印管理 * * @author ...
- Oracle中使用透明网关链接到Sqlserver[Z]
Oracle中使用透明网关链接到Sqlserver 在最近项目中需要从Oracle中访问SQL Server数据库, 自然想到了透明网关. 因为Oracle数据库是Linux上的, 而Linux上的O ...