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 相关文章推荐
in.js 一个轻量级的JavaScript颗粒化模块加载和依赖关系管理解决方案
Jul 26 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
Jan 16 Javascript
javascript利用控件对windows的操作实现原理与应用
Dec 23 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
Aug 16 Javascript
使用jquery中height()方法获取各种高度大全
Apr 02 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
Jul 11 Javascript
浅谈JavaScript正则表达式-非捕获性分组
Mar 08 Javascript
node安装--linux下的快速安装教程
Mar 21 Javascript
jQuery Pagination分页插件_动力节点Java学院整理
Jul 17 jQuery
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
Sep 12 Javascript
微信小程序城市选择及搜索功能的方法
Mar 22 Javascript
JavaScript图片旋转效果实现方法详解
Jun 28 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中使用sockets:从新闻组中获取文章
2006/10/09 PHP
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
文本框中,回车键触发事件的js代码[多浏览器兼容]
2010/06/07 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
2014/06/06 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
Bootstrap CSS使用方法
2016/12/23 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
通过js修改input、select默认字体颜色
2017/04/19 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
详解关于Vuex的action传入多个参数的问题
2019/02/22 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
python实现获取Ip归属地等信息
2016/08/27 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
财务部岗位职责
2013/11/19 职场文书
入团者的自我评价分享
2013/12/02 职场文书
新学期红领巾广播稿
2014/01/14 职场文书
副董事长岗位职责
2014/04/02 职场文书
关于孝道的演讲稿
2014/05/21 职场文书
电子专业求职信
2014/06/19 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
银行工作心得体会范文
2016/01/23 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
python三子棋游戏
2022/05/04 Python