Android中资源文件(非代码部分)的使用概览


Posted in Javascript onDecember 18, 2012

Android中的资源访问

Android中的资源是指非代码部分,指外部文件。

assets中保存的一般是原生的文件,例如MP3文件,Android程序不能直接访问,必须通过AssetManager类以二进制流的形式来读取。

res中的资源可以通过R资源类直接访问。

R类是自动生成的,在该类中根据不同的资源类型生成了相应的内部类,该类包含了系统中使用到的所有资源文件的标识。

1.在代码中使用资源文件

在代码中访问资源文件,是通过R类中定义的资源文件类型和资源文件名称来访问的。

具体格式为:

R.资源文件类型.资源文件名称

另外,除了访问用户自定义的资源文件,还可以访问系统中的资源文件。

访问系统中的资源文件的格式为:

android.R. 资源文件类型.资源文件名称

2.在其他资源文件中引用资源文件

经常会在布局文件中引用图片、颜色资源、字符串资源和尺寸资源。

在其他资源中引用资源的一般格式是:

@[包名称:]资源类型/资源名称

使用颜色资源

颜色值定义的开始时一个#号,后面是Alpha-RGB的格式。

例如:

#RGB

#ARGB

#RRGGBB

#AARRGGBB

引用资源格式:

Java代码中:R.color.color_name

XML文件中:@[package:]color/color_name

使用时在res\values\目录下,定义一个colors.xml文件,里面存放颜色名字和颜色值的键值对。

如:

<resources> 
<color name="red_bg">#f00</color> 
<color name="blue_text">#0000ff</color> 
</resources>

其他资源如字符串、尺寸都是类似的方法。

使用字符串资源

创建字符串资源文件strings.xml.里面内容也是键值对

在Java代码中引用字符串资源R.string.string_name

可如下取得:

String str = getString(R.string.string_name).toString();

在xml文件中引用字符串资源:@[package:]string/string_name

使用尺寸资源

尺寸资源被定义在res\values\dimens.xml文件中。

Android中支持的尺寸单位:

单位表示 单位名称 说明
dip  设备独立像素  不同设备不同的显示效果,dip与屏幕密度有关 
px 像素 屏幕上的真实像素表示,不同设备不同显示屏显示效果相同
in 英尺 基于屏幕的物理尺寸
mm 毫米 基于屏幕的物理尺寸
pt 点(磅) 英尺的1/72
dp 和密度无关的像素 相对屏幕物理密度的抽象单位
sp 和精度无关的像素 和dp类似,与刻度无关的像素,主要处理字体大小

引用尺寸资源

在Java代码中: R.dimen.dimen_name

在xml文件中:@[package:]dimen/dimen_name

使用原始XML资源

XML文件定义在工程的res\xml\目录下,通过Resources.getXML()方法来访问。

获得原始XML文件的思路是,通过getResources().getXml()获得XML原始文件,得到XmlResourceParser对象,通过该对象来判断是文档的开始还是结尾、是某个标签的开始还是结尾,并通过一些获得属性的方法来遍历XML文件,从而访问XML文件的内容。

使用drawables资源

drawable资源是一些图片或者颜色资源,主要用来绘制屏幕,通过Resources.getDrawable()方法获得。

drawable资源分为三类:Bitmap File(位图文件)、Color Drawable(颜色)、Nine-Patch Image(九片图片)。

Android中支持的位图文件有png、jpg和gif。

引用位图资源的格式:

Java代码中:R.drawable.file_name

XML文件中:@[package:]drawable/file_name

使用布局(layout)资源

布局资源是Android中最常用的一种资源,将屏幕中组件的布局方式定义在一个XML文件中,类似于Web中的HTML页面。

布局文件位于res\layout\中,名称任意。Android通过LayoutInflater类将XML文件中的组件解析为可视化的视图组件。

在Activity中,调用Activity.setContentView()方法,将布局文件设置为Activity的界面,使用findViewById()方法来得到布局中的组件。

引用布局文件:

Java代码中:R.layout.my_layout

XML文件中:@[package:]layout/my_layout

使用菜单资源

任何视图组件的创建方式都有两种:一种通过在布局文件中声明创建;另一种通过在代码中创建。

Android中的菜单分为选项菜单、上下文菜单和子菜单,都可以在XML文件中声明定义,在代码中通过MenuInflater类使用。

菜单资源文件也是XML文件,放在工程res\menu\目录下。通过R.menu.my_menu的方式来引用。

典型菜单资源文件的结构:<menu>根元素,在根元素里会嵌套<item>和<group>子元素,<item>元素中也可嵌套<menu>形成子菜单。

时间和精力有限,不能对每一个类型都做详细的例子研究,只好在实际的应用中综合起来再慢慢体会了。加油!

Javascript 相关文章推荐
jQuery的实现原理的模拟代码 -2 数据部分
Aug 01 Javascript
一个网马的tips实现分析
Nov 28 Javascript
8个超棒的学习 jQuery 的网站 推荐收藏
Apr 02 Javascript
jQuery中:enabled选择器用法实例
Jan 04 Javascript
JavaScript结合AJAX_stream实现流式显示
Jan 08 Javascript
JS实现简单路由器功能的方法
May 27 Javascript
Javascript编程中几种继承方式比较分析
Nov 28 Javascript
详解用node搭建简单的静态资源管理器
Aug 09 Javascript
js实现rem自动匹配计算font-size的示例
Nov 18 Javascript
微信小程序实现点击空白隐藏的方法示例
Aug 13 Javascript
ES6 Object.assign()的用法及其使用
Jan 18 Javascript
基于ajax实现上传图片代码示例解析
Dec 03 Javascript
js获取单选框或复选框值及操作
Dec 18 #Javascript
JQuery触发radio或checkbox的change事件
Dec 18 #Javascript
Jquery为单选框checkbox绑定单击click事件
Dec 18 #Javascript
jQuery实现form表单reset按钮重置清空表单功能
Dec 18 #Javascript
js/jquery获取浏览器窗口可视区域高度和宽度以及滚动条高度实现代码
Dec 17 #Javascript
jQuery获取样式中的背景颜色属性值/颜色值
Dec 17 #Javascript
IE不支持getElementsByClassName最终完美解决方案
Dec 17 #Javascript
You might like
php简单静态页生成过程
2008/03/27 PHP
php md5下16位和32位的实现代码
2008/04/09 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
thinkPHP统计排行与分页显示功能示例
2016/12/02 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
Node.js Streams文件读写操作详解
2016/07/04 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
JavaScript日期选择功能示例
2017/01/16 Javascript
javascript数据类型详解
2017/02/07 Javascript
express+mockjs实现模拟后台数据发送功能
2018/01/07 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
vue-video-player视频播放器使用配置详解
2020/10/23 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
在python的WEB框架Flask中使用多个配置文件的解决方法
2014/04/18 Python
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
2020/05/03 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
英国折扣高尔夫商店:Discount Golf Store
2019/11/19 全球购物
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
早会主持词
2014/03/17 职场文书
2015年学校管理工作总结
2015/07/20 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书