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 ...
随机推荐
- Oracle EBS-SQL (WIP-12):总装车间任务查询.sql
select WT.WIP_ENTITY_NAME 任务名 ...
- JavaScript学习之—prototype
一.利用prototype扩展String方法,去除字符前后空格: String.prototype.trim = function String$trim() { if (arguments.len ...
- 为每个页面加上Session判断 转
首先新建一个类,继承自System.Web.UI.Page,然后重写OnInit,如下: using System; using System.Data; using System.Configu ...
- 提高mindmanager 8的启动速度
提高mindmanager 8的启动速度一连串 发布于:2010-01-13 18:12不少人抱怨mindmanager 8的启动速度较慢,用以下办法配置一下就能解决:1.进入mindmanager ...
- kubuntu添加windows字体
1.选取字体 在/usr/share/fonts/truetype中新建一个目录,命名为ms,然后将Windows\fonts 目录下的tahoma.ttf.tahomabd.ttf(Tahoma的粗 ...
- AndroidUI 布局动画-点九PNG技术
下面是正常情况与使用点9切图以后的效果对比: <Button android:id="@+id/button1" android:layout_width="fil ...
- JSP 文件上传下载系列之二[Commons fileUpload]
前言 关于JSP 文件上传的基础和原理在系列一中有介绍到. 这里介绍一个很流行的组件commons fileupload,用来加速文件上传的开发. 官方的介绍是: 让添加强壮,高性能的文件到你的se ...
- 任务管理器进程中多个chrome.exe的问题
偶然发现任务管理器进程中有多个chrome.exe进程,非常奇怪自己仅仅打开了一次浏览器,为什么会有多个?! 上网一查才发现:原来使用Google浏览器Google Chrome每开一个新标签页面,都 ...
- HDU1506_Largest Rectangle in a Histogram
Largest Rectangle in a Histogram Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
- ruby中输入命令行编译sass(ruby小白)
Ruby(或cmd中)输入命令行编译sass步骤如下: (1)举例而言:首先在F盘下建立一个总文件夹,比如test文件夹:其次在该文件夹下建立html,images,js,sass等文件夹. (2)在 ...