Android getResources的作用和须要注意点

今天做一个Android的文件管理器,里面用到非常多的地方用到了getResources。

Drawable currentIcon = null;

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

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

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

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

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

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

简写

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

//得到Resources对象
Resources r = this.getContext().getResources();
//以数据流的方式读取资源
Inputstream is = r.openRawResource(R.drawable.my_background_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);

数据包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-10-17 08:13:27

Android getResources的作用和须要注意点的相关文章

istview android:cacheColorHint,android:listSelector属性作用(转)

原文ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉, 原因是,滚动时,列表里面的view重绘时,用的依旧是系统默认的透明色,颜色值为#FF191919, 要改变这种情况,只需要调用listView的setCacheColorHint(0),颜色值设置为0 或者xml文件中listView的属性 Android:cacheColorHint="#00000000"即可, 滚动时,重绘Vi

腾讯、网易云、字节跳动面试点总结—AMS在Android起到什么作用?

本专栏专注分享大型Bat面试知识,后续会持续更新,喜欢的话麻烦点击一个关注 面试官: AMS在Android起到什么作用,简单的分析下Android的源码 心理分析:这道题在发生在大多数场景下.面对这道题 很多求职很茫然,不知道该如何说起.AMS本身比较复杂难以理解.工作多年也很难弄清AMS的作用,其实我们大可从以下几点入手组件启动.进程切换.Crash异常入手 求职者:AMS难以表述 我们就从最熟知 的Activity启动入手,逐步深入和分析,用定力告诉面试官,我层深入研究过.接下来我们从五条

关于Android的.so文件所须要知道的

早期的Android系统差点儿仅仅支持ARMv5的CPU架构,你知道如今它支持多少种吗?7种. Android系统眼下支持以下七种不同的CPU架构:ARMv5.ARMv7 (从2010年起),x86 (从2011年起),MIPS (从2012年起),ARMv8,MIPS64和x86_64 (从2014年起),每一种都关联着一个相应的ABI. 应用程序二进制接口(Application Binary Interface)定义了二进制文件(尤其是.so文件)怎样执行在相应的系统平台上.从使用的指令集

Android Application的作用

学习android挺长时间了,但是对于Appliction还不是很了解.今天花一些时间研究了一下Application. What is Application Application和Actovotu,Service一样是android框架的一个系统组件,当android程序启动时系统会创建一个 application对象,用来存储系统的一些信息.通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己 的Application,也很简单创建一个类继承 Ap

Android Intent 意图作用

Intent分为两大类: (1)显性的(Explicit) (2)隐性的(Implicit) 对于隐性意图,在某些时候, 应用程序只是想启动具有某种特征的组件, 并不想和某个特定的组件耦合. 使用Intent可以方便的达到这种高层次解耦的目的.(在模块间的组件启动) intent定位事件的目的地: (1)种类(category),比如我们常见的 LAUNCHER_CATEGORY 就是表示这是一类应用程序. (2)类型(type),在前面的例子中没用过,表示数据的类型,这是隐性Intent定位目

listview android:cacheColorHint,android:listSelector属性作用

ListView是常用的显示控件,默认背景是和系统窗口一样的透明色,如果给ListView加上背景图片,或者背景颜色时,滚动时listView会黑掉, 原因是,滚动时,列表里面的view重绘时,用的依旧是系统默认的透明色,颜色值为#FF191919, 要改变这种情况,只需要调用listView的setCacheColorHint(0),颜色值设置为0 或者xml文件中listView的属性 Android:cacheColorHint="#00000000"即可, 滚动时,重绘View

android:contentDescription的作用是什么

在写Android的XML布局文件时,在ImageView或ImageButton中经常会碰到一个提示: Missing contentDescription attribute on image. 这个属性是做什么的呢? 其实这个属性是方便一些生理功能有缺陷的人使用应用程序的.比如我们有一个ImageView里面放置一张颜色复杂的图片,可能一些色弱色盲的人,分不清这张图片中画的是什么东西.如果用户安装了辅助浏览工具比如TalkBack,TalkBack就会大声朗读出用户目前正在浏览的内容.Te

(Android)listview android:cacheColorHint,android:listSelector属性作用 .

1.滚动Listview的时候,会出现黑色底色的情况,破坏整体美观度.     android:cacheColorHint=“#00000000”就可以解决该问题. 2.另外,Android选中的item默认为橙黄底色,有时候需要去掉这种效果,或者设置自定义的选中背景色.     android:listSelector属性,可以设置你自定义的选中背景图.例如android:listSelector="#00000000".

Android Activiy的作用

在Android应用程序中 ,Activity主要的负责创建窗口的,一个Activicy就是代表一个单独的屏幕,并且是用户唯一可以看到的东西 也就是说Activity就是用来实现和用户交互的,就和.net MVC里面的视图层是一样的意思和三层架构里面的Model层. Activity的生命周期 :Activity共有四种状态分别是:激活或运行状态,Activity运行在屏幕的前台 <LinearLayout> </LinearLayout> 这个采用的是线性方式来布局的. @str