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>形成子菜单。

Android中的资源访问的更多相关文章

  1. Android笔记(四十九) Android中的资源访问——asset

        1.文件读取方式     AssetManager.open(String filename),返回的是一个InputSteam类型的字节流,这里的filename必须是文件,而不能是文件夹, ...

  2. Android笔记(四十八) Android中的资源访问——SDCard

    访问存储在SD卡中的文件 使用 Environment.getExternalStorageState(); 判断是否存在内存卡 使用 Environment.getExternalStorageDi ...

  3. Android中的各种访问权限Permission含义

    android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序 android. ...

  4. 今天给大家分享一下Android中的资源与国际化的问题

    摘要:该文章将向大家分享Android中的资源与国际化的问题. 今天给大家分享一下Android中的资源与国际化的问题,通常我们新建一个Android工程,目录结构如下图所示: 我们主要看一下layo ...

  5. Android中的资源文件

    最近复习Android资源文件的内容,留下点记录以备后用. Android中的资源主要是指存放在应用程序或者Framework相应包下/res中的内容.它们可以被本地化,如果必要的话会被编译成二进制文 ...

  6. Android中的资源与国际化!

    Android中的资源与国际化的问题,通常我们新建一个Android工程,目录结构如下图所示: 我们主要看一下layout与values目录,layout里的xml文件的我们应用使用布局的文件,val ...

  7. Android之旅十六 android中各种资源的使用

    android中各种资源的使用: 在android开发中,各种资源的合理使用应该在各自的xml中进行定义,以便反复使用; 字符串资源:strings.xml,xml中引用:@string/XXX,ja ...

  8. IntelliJ IDEA+SpringBoot中静态资源访问路径陷阱:静态资源访问404

    IntelliJ IDEA+SpringBoot中静态资源访问路径陷阱:静态资源访问404 .embody{ padding:10px 10px 10px; margin:0 -20px; borde ...

  9. [转]android中drawable资源的解释及例子

    原文链接:         http://blog.csdn.net/wode_dream/article/details/38584693 文章中的内容参考Dev Guide中的Drawable R ...

随机推荐

  1. webstrom 很卡 底下一直走进度条 scanning files to index

    最近工作总会遇到一些问题 先说说webstrom 其中有一次仅仅开了两个项目 电脑风扇就各种轰鸣 各种重启 安装卸载webstrom 都没有作用 好吧 其实解决很简单 选择一个文件夹,右键, Mark ...

  2. Android学习(十六) 通过GestureDetector进行手势识别

    一.手势交互过程: 1)触屏时,触发MotionEvent事件. 2)被OnTouchListener监听,在onTouch()中获得MotionEvent对象. 3)GestureDetector转 ...

  3. javascript 模块引擎 (手写草稿)

    1.试题: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  4. ionic2项目创建回顾 及 react-native 报错处理

    ionic2: 1.创建项目: ionic start MyIonic2Project tutorial --v2 (下载 tutorial 模板来初始化项目) ionic start MyIonic ...

  5. 编辑mac系统环境变量后保存,提示没有权限用到下面这个命令

    编辑的文件是vim /etc/paths :w !sudo tee % %代表当前编辑文件名 MAC:查看端口占用情况: lsof -i tcp: list open files lsof -i 用以 ...

  6. servlet监听器与事件

    前言 在Servlet 2.4/JSP 2.0中,共同拥有八个Listener接口,六个Event类别. 參考:Servlet中的八大Listener 入门 阅读文件夹 Web监听器 监听器的分类 S ...

  7. sql2000实现row_number

    一.以PersonID,classid,dt_ClassData为条件进行分组,每个小组加序号,row_number在sql2005中不可用 方法一.sql2000及以上版本--以PersonID,c ...

  8. 对ListView滚动状态的监听

    有的时候,我们需要对ListView滚动做一个相应的监听事件,例如:要实现如下图通讯录的功能: 思路为:首先呢,中间那个"路"字为一个TextView,它与ListView采用相对 ...

  9. VB.NET小结

    在满头困惑与不断的摸索中.NET视频终究是看完了,感觉这是迄今为止的视频材料中最令人头疼的一个,漫天的繁体字和标准的台湾术语,真是让人欲罢不能.只是看着看着也就慢慢习惯了,大概可以理解老师在讲什么,可 ...

  10. C语言中的signal函数

    signal是一个系统调用.是一种特殊的中断,当某种特定的"软件中断"发生时.用于调用的程序.中断通常是程序运行中出现的特殊情况,如引用特殊内存中的非法地址, 浮点数被0除. si ...