http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1201/655.html

编辑推荐:稀土掘金,这是一个针对技术开发者的一个应用,你可以在掘金上获取最新最优质的技术干货,不仅仅是Android知识、前端、后端以至于产品和设计都有涉猎,想成为全栈工程师的朋友不要错过!

开发中经常用到 getResources() 函数,开始不知道如何使用 res 或者 assets 的文件,现在终于知道了其用法,记录下来以便有朋友能使用到。

概要说明:
数据包package:android.content.res
主要类:Resources
InputStream openRawResource(int id) 获取资源的数据流,读取资源数据
把一个图片资源,添加你的文件到你工程中res/drawable/目录中去,可以在代码或XML布局中,引用它也可以用资源编号,比如你选择一个文件只要去掉后缀就可以了(例如:mmm_image.png 引用它是就是mm_image)。
当需要使用的xml资源的时候,就可以使用context.getResources().getDrawable(R....资源的地址如:R.String.ok);
当你方法里面没有Context参数,可以 this.getContext().getResources();这样就可以了。
下面详细说明一下使用场景:

1、需要使用getResource()的时候一定要注意
    必须要有Context, 这个一般的service或者activity即带有
    可以用作成员变量,构造传入或方法参数传入就可以了
2、引用xml文件时,可能通过:
getResources().getXml()获的XML原始文件,然后再得到XmlResourceParser对象
XmlResourceParser xrp = mRes.getXml(R.xml.personal);

而利用R....可以指定文件夹下面的某个xml文件进行加载使用

3、其它的一些文件读取方法
a、把资源文件放到应用程序的/raw/raw下,那么就可以在应用中使用getResources获取资源后,

以openRawResource方法(不带后缀的资源文件名)打开这个文件

1
2
Resources myResources = getResources();   
InputStream myFile = myResources.openRawResource(R.raw.xx_filename);

与普通java程序一样,android提供了openFileInput和openFileOutput方法来读取设备上的文件

1
2
3
InputStream fs =this.getResources().openRawResource(R.raw.index.htm); (资源文件名为index.html, 不需要带后缀.htm)   
InputStreamReader read = new InputStreamReader (fs,"utf-8");   
BufferedReader in = new BufferedReader(read);

b、读取res/drawable目录下的png或者bmp

1
2
3
4
5
6
//得到Resources对象   
Resources r = this.getContext().getResources();   
//以数据流的方式读取资源   
Inputstream is = r.openRawResource(R.drawable.mm_image);   
BitmapDrawable bmpDraw = new BitmapDrawable(is);   
Bitmap bmp = bmpDraw.getBitmap();

如果需要利用图片解码器,如下使用:

1
2
3
4
InputStream is = getResources().openRawResource(R.drawable.icon);   
Bitmap mBitmap = BitmapFactory.decodeStream(is);   
Paint mPaint = new Paint();   
canvas.drawBitmap(mBitmap, 40, 40, mPaint);

Android --- 读取系统资源函数getResources()小结的更多相关文章

  1. Android读取JSON格式数据

    Android读取JSON格式数据 1. 何为JSON? JSON,全称为JavaScript Object Notation,意为JavaScript对象表示法. JSON 是轻量级的文本数据交换格 ...

  2. Android 读取Assets下的资源文件

    做Android开发近半年了,东西越学越多,硬盘容量越来越小.很多东西找起来也不方便,为此,我打算从今天起把工作中学到的东西整理起来,写成日记.也希望与广大网友分享我的经验.一同进步.今天主要介绍文件 ...

  3. Android读取asserts和raw文件夹下的文件

    Android读取asserts和raw文件夹下的文件 经常需要用到读取“/res/raw”和"/asserts"文件夹下的文件,索性写成工具类方便以后使用. 一.raw文件夹下的 ...

  4. Android读取自定义View属性

    Android读取自定义View属性 attrs.xml : <?xml version="1.0" encoding="utf-8"?> < ...

  5. Android - 读取JSON文件数据

    Android读取JSON文件数据 JSON - JavaScript Object Notation 是一种存储和交换文本信息的语法. JSON对象在花括号中书写.用逗号来分隔值. JSON数组在方 ...

  6. Android Studio 增加函数注释模板

    此篇文章主要介绍如何在Android Studio中函数如何添加注释,使其和eclipse一样方便的添加注释 Android Studio默认函数注释为 /** * */ 下面方法将要改为如下格式 / ...

  7. Android 读取assets文件下的txt文件

    android 读取assets文件下的txt文件,解决了读取txt文件的乱码问题: package com.example.com.scrollview; import java.io.Buffer ...

  8. js cookie创建读取删除函数封装

    js cookie创建读取删除函数封装 一.总结 都是为了方便操作,这样弄了很方便 1.创建cookie的函数封装的作用:方便设置过期时间expire,方便设置键和值 2.查询cookie的数据封装的 ...

  9. MTK Android 读取SIM卡参数,获取sim卡运营商信息

    android 获取sim卡运营商信息(转)   TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TE ...

随机推荐

  1. 正则表达式:reg.test is not a function

    正则中 比如 var reg = "/^[0-9]$/" 会报 reg.test is not a function 如果 var reg = /^[0-9]$/ 就不会有错 因为 ...

  2. Objective-C和Swift实现单例的几种方式

    在Swift开发中,我们对于跨类调用的变量常量,因为并没有OC中使用的全局头文件中写宏的形式,我们一般采用在类外定义全局变量/常量的形式来跨类调用.而问题在于目前写的项目需要在新添加的OC写的功能模块 ...

  3. UVA 11021 /概率

    题意: 有k只鸟,每只鸟只能活一天,它可以在死之前生[0,n-1]只鸟,生出x只鸟的概率是p[x].问m天后所有的鸟都时光的概率.(m天之前就死了的也算上). 输入:T.n.k.m. 题解: 每只鸟的 ...

  4. RSA 公私钥 互换问题

    关于 RSA,我的理解是: 按定义的话,公私钥是可以互换的 问题是常见的实现里面,保存“私钥”的那个数据结构或者文件,里面除了私钥所必需的那一对数之外,还有额外的信息(足以算出公钥来),所以绝对不能把 ...

  5. 自定义UICollectionView

    1.创建一个UICollectionView工程,点击鼠标右侧按钮选择New File->Cocoa Class->点击Next,Class选项填写一个合理的名称,如:MyCollecti ...

  6. 关于Linode、Digitalocean、Vultr三款美国VPS服务商的用户体验

    曾几何时,虽然我们在海外VPS服务商中也可以看到各种大大小小的商家,但是真正能让Linode这样高富帅有竞争力的还真不多,这不当初在Linode商家512MB内存方案卖20美元一个月的时候,还是有很多 ...

  7. 其他应用和技巧-eval()函数大行其道

    ---------------------------------- <script type="text/javascript">                   ...

  8. ADT(abstract data types)抽象数据类型

    1.What is it? An abstract data type is a set of objects together with a set of operations. 抽象数据类型是带有 ...

  9. LeetCode OJ 199. Binary Tree Right Side View

    Given a binary tree, imagine yourself standing on the right side of it, return the values of the nod ...

  10. Git撤销暂存区stage中的内容

    $ git add readme.txt提交到了stage中. $ git statusOn branch masterChanges to be committed:  (use "git ...