在开发当中需要引用程序资源,如工程之中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()相关推荐

  1. (五)Android资源访问

    文章目录 5.1 字符串资源(string) 5.1.1 定义字符串资源文件 5.1.2 使用字符串资源 5.2 颜色资源(color) 5.2.1 颜色值的定义 5.2.2 定义颜色资源文件 5.2 ...

  2. Android资源使用详解(一)

    一.Android资源简介 Android应用资源可分为两大类:(1)无法通过R清单类访问的原生资源,保存在assets目录下;(2)可通过R资源清单类访问的资源,保存在res目录下.其中,res目录 ...

  3. Android Studio(16)---工程相关解析(各种文件,资源访问)

    工程相关解析(各种文件,资源访问) 前面讲了一堆看似和我们Android开发无关的东西是吧,当然是现在看似而已,以后你回头看就知道了! 好吧,本节我们就来以前面创建的Hello World项目为入口, ...

  4. Android 应用开发(32)--工程相关解析(各种文件,资源访问)

    工程相关解析(各种文件,资源访问) 1.工程项目结构解析: 我们开发大部分时间都花在下面这个部分上: 接下来我们对关键部分进行讲解: java:我们写Java代码的地方,业务功能都在这里实现 res: ...

  5. android中的用户资源访问(一)

    2019独角兽企业重金招聘Python工程师标准>>> 这几天要总结一下android开发中的用户资源访问. android中的用户资源存在项目工程中res文件夹下,有字符串.颜色. ...

  6. Android异步消息机制

    2019独角兽企业重金招聘Python工程师标准>>> 目录介绍 1.Handler的常见的使用方式 2.如何在子线程中定义Handler 3.主线程如何自动调用Looper.pre ...

  7. Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组

    一. Android资源文件简介 1. Android应用资源的作用 (1) Android项目中文件分类 在Android工程中, 文件主要分为下面几类 : 界面布局文件, Java src源文件, ...

  8. 【Android 应用开发】Android资源文件 - 使用资源存储字符串 颜色 尺寸 整型 布尔值 数组

    . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/19913755 . 一. Android资源文件简介 1 ...

  9. 储存外部资源的Android项目子目录,Android资源使用

    原标题:Android资源使用 Android资源管理机制 在Android的开发中,需要使用到各式各样的资源,这些资源往往是一些静态资源,比如位图,颜色,布局定义,用户界面使用到的字符串,动画等.这 ...

最新文章

  1. 如何检查一个Python字符串是否只包含数字?
  2. Linux下Mysql数据库的基础操作
  3. numpy 数组抽取_Python 关于NumPy的用法介绍
  4. 用了python之后笔记本卡了_应用
  5. 2018年3月计算机二级考试题,2018年3月计算机二级考试Access综合试题十
  6. MySQL的多表查询(笛卡尔积原理)
  7. ISO9000认证与互联网转型
  8. 计算机网络基础实验(Cisco Packet Tracer 实验)
  9. 2019年保研夏令营时间经验汇总
  10. PHPStorm 配置locahost 数据库
  11. 如何在职场上获得良好的起点
  12. 2018 PHP面试真题(包括详细解析)
  13. 关闭Chrome启动时的360导航页面
  14. JAVA进阶—注解,对象克隆,设计模式
  15. 盘一盘那些提效/创意的宝藏网站
  16. 2019大数据挑战赛TOP5方案总结
  17. 10分钟白嫖大厂程序员都在用的在线工具网站
  18. C语言 校园歌手比赛系统
  19. 2020牛客寒假算法基础集训营1 I nico和niconiconi
  20. 【日本动漫推荐】十一长假动画推荐情报~

热门文章

  1. win7 桌面上的网络邻居不见了
  2. 各大直播平台主播的收入计算方式是怎样的?
  3. android 实体键盘,实体全键盘安卓智能手机,真的有人喜欢吗?
  4. 计算机毕业设计SSM党建网站【附源码数据库】
  5. 小米笔记本pro macOS Mojave使用体验
  6. unity 游戏内实现3连击动画
  7. Qt中LNK1181:无法打开输入文件“*.obj“报错
  8. 论坛系统的设计与实现
  9. Android手机部分名词浅谈
  10. 【一篇文章带你掌握HTML中ul、ol和dl列表的使用 - 超详细】