getResources()方法

今天做一个Android文件管理器。它使用了很多当地的用途getResources。

Drawable currentIcon = null;

………………

currentIcon = getResources().getDrawable(R.drawable.folder);

………………

currentIcon = getResources().getDrawable(R.drawable.image);

…………

Drawable currentIcon = null;

………………

currentIcon = getResources().getDrawable(R.drawable.folder);

………………

currentIcon = getResources().getDrawable(R.drawable.image);

…………

一開始不是非常理解为什么用c getResources()这种方法就能够获取存在系统的资源。于是看了一下文档和翻阅了一下资料:

比如:把资源文件放到应用程序的/raw/raw下。那么就能够在应用中使用getResources获取资源后。以openRawResource方法(不带后缀的资源文件名称)打开这个文件。比如:

[java] view plaincopyprint?

Resources myResources = getResources();

InputStream myFile = myResources.openRawResource(R.raw.myfilename);

Resources myResources = getResources();

InputStream myFile = myResources.openRawResource(R.raw.myfilename);

和传统的java文件操作一样。在android Api中提供了openFileInput和openFileOutput方法来读取设备上的文件。

简写

[java] view plaincopyprint?

InputStream fs =this.getResources().openRawResource(R.raw.kb); (资源文件名称为kb.html, 不须要带后缀.html)

InputStreamReader read = new InputStreamReader (fs,”gb2312″);

BufferedReader in = new BufferedReader(read);

InputStream fs =this.getResources().openRawResource(R.raw.kb); (资源文件名称为kb.html, 不须要带后缀.html)

InputStreamReader read = new InputStreamReader (fs,”gb2312″);

BufferedReader in = new BufferedReader(read);

读取res/drawable文件夹下的png或者bmg

[java] view plaincopyprint?

//得到Resources对象

Resources r = this.getContext().getResources();

//以数据流的方式读取资源

Inputstream is = r.openRawResource(R.drawable.my_background_image);

BitmapDrawable bmpDraw = new BitmapDrawable(is);

Bitmap bmp = bmpDraw.getBitmap();

//得到Resources对象

Resources r = this.getContext().getResources();

//以数据流的方式读取资源

Inputstream is = r.openRawResource(R.drawable.my_background_image);

BitmapDrawable bmpDraw = new BitmapDrawable(is);

Bitmap bmp = bmpDraw.getBitmap();

或者

[java] view plaincopyprint?

InputStream is = getResources().openRawResource(R.drawable.icon);

Bitmap mBitmap = BitmapFactory.decodeStream(is);

Paint mPaint = new Paint();

canvas.drawBitmap(mBitmap, 40, 40, mPaint);

InputStream is = getResources().openRawResource(R.drawable.icon);

Bitmap mBitmap = BitmapFactory.decodeStream(is);

Paint mPaint = new Paint();

canvas.drawBitmap(mBitmap, 40, 40, mPaint);

数据包package:android.content.res

主要类:Resources

InputStream openRawResource(int id) 获取资源的数据流。读取资源数据

把一个图片资源,加入你的文件到你project中res/drawable/文件夹中去,从这里。你就能够引用它到你的代码或你的XML布局中,也就是说。引用它也能够用资源编号,比方你选择一个文件仅仅要去掉后缀就能够了(比如:my_image.png 引用它是就是my_image)。

当须要使用的xml资源的时候。就能够使用context.getResources().getDrawable(R....资源的地址如:R.String.ok);

当你方没有法律Context参数,能 this.getContext().getResources();这使。

注意,使用getResource()当注意

1、必须有Context是啊 2、它可以用来作为成员变量,施工方法参数传入或。

它。

时间: 2024-12-17 02:47:33

getResources()方法的相关文章

Android 非Activity类引用getResources()方法问题的解决方法

在进行Android开发的过程中,在一个非Activity类(此处假设类名为MyNewClass)中引用了getResources()方法,如下: Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.marker_red); 结果错误信息提示:MyNewClass.class中没有getResources()方法. 在百度和Google上各种寻找,没有合适的解决办法. 有人这么解决: 可以传递指针给你的acti

Dagger2使用方法

欢迎Follow我的GitHub, 关注我的CSDN, 合作请联系我. Dagger已经加入Google I/O, 是Square开发的依赖注入库, 发布2.0版本. Dagger表示有向非循环图(Directed Acyclic Graph, DAGger). 好处和优点有很多, 参考, 所有优秀的开源库, 本质上都是让程序更加清晰, 编写更加容易. 让我们来看看怎么使用? 主要内容: (1) 项目的配置环境. (2) Inject\Module\Component的使用方法. (3) 结合R

看看Spring的源码——Bean加载过程

最近几天跟同事聊起Spring的一些问题,对一些地方有些疑问,趁这两天有点空,看看Spring的源码,了解下具体的实现细节.本文基于Spring 4.0.5版本. 首先Web项目使用Spring是通过在web.xml里面配置org.springframework.web.context.ContextLoaderListener初始化IOC容器的. <listener> <listener-class>org.springframework.web.context.ContextL

Android热修复原理普及

Android热修复原理普及 这段时间比较难闲,就抽空研究一下Android热修复的原理.自从Android热修复这项技术出现之后,随之而现的是多种热修复方案的出现.前两天又看到一篇文章分析了几种热修复方案的比较. 原文地址是:[Android热修复] 技术方案的选型与验证 看完这篇文章,有点汗颜.有这么多的热修复方案,并且他们之间的实现原理也不一样,各有优缺点. 然后在尼古拉斯_赵四的博客中看到几篇关于热修复的文章,对着这几篇文章撸了一番.大概的了解了热修复一种原理,其思路和QQ空间提出的安卓

深入浅出ClassLoader

你真的了解ClassLoader吗? 这篇文章翻译自zeroturnaround.com的 Do You Really Get Classloaders? ,融入和补充了笔者的一些实践.经验和样例.本文的例子比原文更加具有实际意义,文字内容也更充沛一些,非常感谢作者 Jevgeni Kabanov 能够共享如此优秀的文档. 1. 为什么你需要了解和敬畏ClassLoader ClassLoader在Java语言中占据了核心地位,Java应用服务器,OSGi,以及大量的网络框架,它们大多数都用到了

Android设置不被系统设置改变的字体大小

原因 从4.0开始,系统设置中“显示”可以对字体大小进行配置,这会影响到TextView等控件中文字显示的大小. 解决方案 在自定义的Activity中重写getResources方法 @Override public Resources getResources() { Resources res = super.getResources(); Configuration conf = new Configuration(); conf.setToDefaults(); res.updateC

Android 资源

Android资源分两类: 无法通过R清单类访问的原生资源,保存在assets目录下,R资源类的路径:..\build\generated\source\r\debug\工程名 可以通过R清单类访问的原生资源,保存在res目录下 Resources类:资源管理类 Context.getResources()方法获取Resources对象 Context.getAssets()获取访问/assets目的资源的AssetManager对象 getXxx(int id):根据资源Id获取实际的资源 X

spring boot 源码赏析之事件监听

使用spring Boot已经快1年多了,期间一直想点开springboot源码查看,但由于种种原因一直未能如愿(主要是人类的惰性...),今天就拿springboot 的监听事件祭刀. springboot 中常用的事件监听主要有ApplicationStartedEvent,ApplicationEnviromentPreparedEvent,ApplicationPreparedEvent,ApplicationStoppedEvent等.用于监听springboot生命周期中的各种事件.

Android基于代理的插件化思路分析

前言 正常的App开发流程基本上是这样的:开发功能-->测试--->上线,上线后发现有大bug,紧急修复---->发新版本---->用户更新----->bug修复.从发现bug到修复bug花了很长时间.我们希望bug的修复是立马生效的,用户无感知就能自动修复bug.当然,Android端的动态修复bug已经有不少框架了,不过我们今天讲的是另一个话题:Android的插件化.Android插件化有很多好处:热插拔.静默升级.bug动态修复.代码解耦等.正是因为如此,才有越来越多