Android资源访问机制--getResource()
在开发当中需要引用程序资源,如工程之中assets和res目录下的图片、layout、values等或者需要系统内置的资源。
获取Resources的过程:
(1)将framework/framework-res.apk和应用资源apk装载为Resources对象。
(2)获取Resources对象
获取Resources对象有两种方式,第一种通过Context,第二种通过PackageManager。
一. 通过Context来获取getResource对象
1.在一个Acitvity或者一个Service中,我们直接this.getResources()方法,就可以获得Reousrces对象。其实Acitivity或者Service本质上就是一个Context,getResources()方法来自Context,而真正实现Context接口是ContextImpl类,所以调用的实际上时ContextImpl类的getResources()方法。
2.引用XML文件时,可以通过:
—getResources().getXml()获的XML原始文件,然后再得到XmlResourceParser对象
—XmlResourceParser xrp = mRes.getXml(R.xml.personal);
例如:ds.setColor(getResources().getColor(R.color.text_blue_color));
利用R….可以指定文件夹下面的某个xml文件进行加载使用
3、其它的一些文件读取方法
a、把资源文件放到应用程序的/raw/raw下,那么就可以在应用中使用getResources获取资源后,
以openRawResource方法(不带后缀的资源文件名)打开这个文件
Resources myResources = getResources();
InputStream myFile = myResources.openRawResource(R.raw.xx_filename);
与普通java程序一样,android提供了openFileInput和openFileOutput方法来读取设备上的文件
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
//得到Resources对象
Resources r = this.getContext().getResources();
//以数据流的方式读取资源
Inputstream is = r.openRawResource(R.drawable.mm_image);
BitmapDrawable bmpDraw = new BitmapDrawable(is);
Bitmap bmp = bmpDraw.getBitmap();
如果需要利用图片解码器,如下使用:
InputStream is = getResources().openRawResource(R.drawable.icon);
Bitmap mBitmap = BitmapFactory.decodeStream(is);
Paint mPaint = new Paint();
canvas.drawBitmap(mBitmap, 40, 40, mPaint);
Android资源访问机制--getResource()相关推荐
- (五)Android资源访问
文章目录 5.1 字符串资源(string) 5.1.1 定义字符串资源文件 5.1.2 使用字符串资源 5.2 颜色资源(color) 5.2.1 颜色值的定义 5.2.2 定义颜色资源文件 5.2 ...
- Android资源使用详解(一)
一.Android资源简介 Android应用资源可分为两大类:(1)无法通过R清单类访问的原生资源,保存在assets目录下;(2)可通过R资源清单类访问的资源,保存在res目录下.其中,res目录 ...
- Android Studio(16)---工程相关解析(各种文件,资源访问)
工程相关解析(各种文件,资源访问) 前面讲了一堆看似和我们Android开发无关的东西是吧,当然是现在看似而已,以后你回头看就知道了! 好吧,本节我们就来以前面创建的Hello World项目为入口, ...
- Android 应用开发(32)--工程相关解析(各种文件,资源访问)
工程相关解析(各种文件,资源访问) 1.工程项目结构解析: 我们开发大部分时间都花在下面这个部分上: 接下来我们对关键部分进行讲解: java:我们写Java代码的地方,业务功能都在这里实现 res: ...
- android中的用户资源访问(一)
2019独角兽企业重金招聘Python工程师标准>>> 这几天要总结一下android开发中的用户资源访问. android中的用户资源存在项目工程中res文件夹下,有字符串.颜色. ...
- Android异步消息机制
2019独角兽企业重金招聘Python工程师标准>>> 目录介绍 1.Handler的常见的使用方式 2.如何在子线程中定义Handler 3.主线程如何自动调用Looper.pre ...
- Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
一. Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, ...
- 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组
. 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19913755 . 一. Android资源文件简介 1 ...
- 储存外部资源的Android项目子目录,Android资源使用
原标题:Android资源使用 Android资源管理机制 在Android的开发中,需要使用到各式各样的资源,这些资源往往是一些静态资源,比如位图,颜色,布局定义,用户界面使用到的字符串,动画等.这 ...
最新文章
- 如何检查一个Python字符串是否只包含数字?
- Linux下Mysql数据库的基础操作
- numpy 数组抽取_Python 关于NumPy的用法介绍
- 用了python之后笔记本卡了_应用
- 2018年3月计算机二级考试题,2018年3月计算机二级考试Access综合试题十
- MySQL的多表查询(笛卡尔积原理)
- ISO9000认证与互联网转型
- 计算机网络基础实验(Cisco Packet Tracer 实验)
- 2019年保研夏令营时间经验汇总
- PHPStorm 配置locahost 数据库
- 如何在职场上获得良好的起点
- 2018 PHP面试真题(包括详细解析)
- 关闭Chrome启动时的360导航页面
- JAVA进阶—注解,对象克隆,设计模式
- 盘一盘那些提效/创意的宝藏网站
- 2019大数据挑战赛TOP5方案总结
- 10分钟白嫖大厂程序员都在用的在线工具网站
- C语言 校园歌手比赛系统
- 2020牛客寒假算法基础集训营1 I nico和niconiconi
- 【日本动漫推荐】十一长假动画推荐情报~