Android --- 读取系统资源函数getResources()小结
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()小结的更多相关文章
- Android读取JSON格式数据
Android读取JSON格式数据 1. 何为JSON? JSON,全称为JavaScript Object Notation,意为JavaScript对象表示法. JSON 是轻量级的文本数据交换格 ...
- Android 读取Assets下的资源文件
做Android开发近半年了,东西越学越多,硬盘容量越来越小.很多东西找起来也不方便,为此,我打算从今天起把工作中学到的东西整理起来,写成日记.也希望与广大网友分享我的经验.一同进步.今天主要介绍文件 ...
- Android读取asserts和raw文件夹下的文件
Android读取asserts和raw文件夹下的文件 经常需要用到读取“/res/raw”和"/asserts"文件夹下的文件,索性写成工具类方便以后使用. 一.raw文件夹下的 ...
- Android读取自定义View属性
Android读取自定义View属性 attrs.xml : <?xml version="1.0" encoding="utf-8"?> < ...
- Android - 读取JSON文件数据
Android读取JSON文件数据 JSON - JavaScript Object Notation 是一种存储和交换文本信息的语法. JSON对象在花括号中书写.用逗号来分隔值. JSON数组在方 ...
- Android Studio 增加函数注释模板
此篇文章主要介绍如何在Android Studio中函数如何添加注释,使其和eclipse一样方便的添加注释 Android Studio默认函数注释为 /** * */ 下面方法将要改为如下格式 / ...
- Android 读取assets文件下的txt文件
android 读取assets文件下的txt文件,解决了读取txt文件的乱码问题: package com.example.com.scrollview; import java.io.Buffer ...
- js cookie创建读取删除函数封装
js cookie创建读取删除函数封装 一.总结 都是为了方便操作,这样弄了很方便 1.创建cookie的函数封装的作用:方便设置过期时间expire,方便设置键和值 2.查询cookie的数据封装的 ...
- MTK Android 读取SIM卡参数,获取sim卡运营商信息
android 获取sim卡运营商信息(转) TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TE ...
随机推荐
- QML与Qt C++ 交互机制探讨与总结
介绍 QML和 C++对象可以通过,signals,slots和 属性修改进行交互.对于一个C++对象,任何数据都可以通过Qt的 Meta-Object System暴露给QML(何总方法,后面介绍) ...
- Echart图表相关配置项的设置
饼状图提示框单位显示 在{c}后面即可添加任意单位内容. 一条记录含有多组数据的柱状图单位显示 标注单位的显示. 目前还未找到方法实现,当鼠标移动到标注上时设置显示单位. 标线单位的显示
- java类的初始化
转载:http://blog.csdn.net/moreevan/article/details/6968718 我们知道一个类(class)要被使用必须经过装载,连接,初始化这样的过程.下面先对这三 ...
- foreach 跟volist 有什么区别?
<foreach name="list" item="vo">{$vo.id}{$vo.name}</foreach>Foreach标签 ...
- Java多线程之~~~使用Exchanger在线程之间交换数据[这个结合多线程并行会有解决很多问题]生产者消费者模型
http://blog.csdn.net/a352193394/article/details/39503857 Java多线程之~~~使用Exchanger在线程之间交换数据[这个结合多线程并行会 ...
- 矩阵快速幂AC代码HDU 2035
#include <iostream> using namespace std;const int MOD = 1000;//像这样的一个常量就应该专门定义一下 int PowMod(in ...
- lldpcli 常用命令
1.查看周围的邻居列表 root@hbg:/# lldpcli show neighbors------------------------------------------------------ ...
- Django:之中间件、微信接口和单元测试
Django中间件 我们从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 Django的过程如下: 也就是说,每一个请求都是先通过中间件中的 pr ...
- tar解压
tar在linux上是常用的打包.压缩.加压缩工具,他的参数很多,折里仅仅列举常用的压缩与解压缩参数 参数: -c :create 建立压缩档案的参数:-x : 解压缩压缩档案的参数:-z : 是否需 ...
- WebForm(aspx,cs,dll之间的关系)
WebForm分为两个文件aspx和aspx.cs,aspx是页面模板,是页面描述文件,就是html的内容,和aspx结合的更好,不用像一开始那样程序员自己去填充模板,控件都是定义在aspx中,内联的 ...