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 ...
随机推荐
- CSS左中右布局,规范案例
html部分 <body> <form id="form1" runat="server"> <div id="wrap ...
- 访问动态链接库中的C++类和资源
面我们来介绍如何访问动态链接库中的C++类和资源.其具体操作步骤如下:(1)创建一个基于对话框的工程,工程名称为“AccessDll”.设计对话框资源如图1所示. 图1 对话框资源设计窗口(2)定义 ...
- java常量池理解
String类两种不同的创建方式 String s1 = "zheng"; //第一种创建方式 String s2 = new String("junxiang" ...
- python-多线程(原理篇)
多线程的基本概念 语言学习总是绕不过一些东西,例如多进程和多线程,最近越来越发现,上来看几个实例练习一下过几天就不知其所以然了.所以还是先看看原理,在看实例练习吧! 线程的概念 概念:线程是进程中执行 ...
- c++编程中的后缀
.a 静态库 (archive) .C.c.cc.cp.cpp.cxx.c++ C++源代码(需要编译预处理) .h C或者C++源代码头文件 .ii C++源代码(不需编译预处理) .o 对象文件 ...
- JavaScript可以这样用
javascript:Qrlink(<%#Eval("ActivityType")%>,<%#Eval("ID")%>,<%#Ev ...
- 做ie8css样式时浏览器默认杂项模式遇到的一个小坑
1 进行ie浏览器的样式兼容的时候,首先要确保打开浏览器浏览网页的时候的文本模式要为当前浏览器的"标准模式",注意<!DOCTYPE html>不缺失不错误,以免浏览器 ...
- Android Studio的配置
第一次使用Android Studio时你应该知道的一切配置 - 生命壹号 - 博客园http://www.cnblogs.com/smyhvae/p/4390905.html
- Struts2核心包
Commons-logging.jar -------------- 用于通用日志处理 Freemarker.jar -------------- 表现层框架,定义了struts2的可视组 ...
- 《CSAPP》读书杂记 - Chapter 2. Representing and Manipulating Information
1. 一段查看地址内容的代码 代码: #include <stdio.h> typedef unsigned char *byte_pointer; void show_bytes(byt ...