Android getResources的作用和需要注意点

2023-05-16

       今天做一个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) 获取资源的数据流,读取资源数据

把一个图片资源,添加你的文件到你工程中res/drawable/目录中去,从这里,你就可以引用它到你的代码或你的XML布局中,也就是说,引用它也可以用资源编号,比如你选择一个文件只要去掉后缀就可以了(例如:my_image.png 引用它是就是my_image)。

当需要使用的xml资源的时候,就可以使用context.getResources().getDrawable(R....资源的地址如:R.String.ok);

当你方法里面没有Context参数,可以 this.getContext().getResources();这样就可以了。


      注意,使用getResource()的时候注意

1、必须要有Context呀

2、可以用作成员变量,构造传入或方法参数传入。就可以了。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • relativelayout/customview 不填充选项卡的宽度

    我正在尝试用视图填充选项卡 有关我尝试通过视图实现的确切目标的更多信息 请阅读我之前的问题 如何自定义各个选项卡 更改背景颜色 指示器颜色和文本颜色 https stackoverflow com questions 21335267 ho
  • Android 中通过 OpenMAX 访问相机

    我目前正在尝试弄清楚如何在 Android 4 0 中通过 OpenMAX 访问相机 该文档对我来说还不够 所以我目前正在努力解决如何检索正确的问题XADataSource对于以下调用 engine gt CreateMediaRecord
  • RemoteViews 支持的方法

    我正在尝试将值转发到 Android RemoteView 某些值可以通过使用反射的 set 方法转发 例如背景颜色的工作原理 rv setInt R id viewId setBackgroundColor 0xffff0000 尽管该机
  • 在PC上的Firefox上模拟Android的Webview?

    作为我的软件开发工作 针对 Android 的一部分 我需要在通过 Android 的 WebView 查看时检查大量 HTML 页面的内容 到目前为止 我已经能够通过将 HTML 内容转储到文件中来实现这一点 data data
  • NavigationUI 无法与底部导航视图实现一起正常工作

    所以我有一个场景 其中我有 5 个带有底部导航的片段 1 主页 2 收件箱 3 搜索 4 通知 5 个人资料 因此 我有另一个名为 BarcodeDetail 的片段 我从 Home Fragment 导航到该片段 首页 gt 条码详情 现
  • 如何设置带有选项卡的多个滑动视图的默认选项卡?

    我真的被困住了 我在主要活动中使用选项卡进行了四个滑动视图 但我想要的是当用户打开应用程序时 它会自动显示第二个选项卡而不是第一个选项卡 这是我的 MainActivity java public class MainActivity ex
  • GCM 卷曲操作超时

    我的服务器上存储了几个负责 GCM 操作的 php 文件 它们似乎在需要时工作得很好 但它们经常返回一个错误 指出 卷曲错误 操作在 0 毫秒后超时 0 中的 0 收到的字节数 这是服务器的问题还是我的 GCM 代码的问题 下面是我的 ph
  • Linkify 是否适用于 Android 中的 TextView?

    我有这段代码适用于调用 EditText 的方法 我尝试对 TextView 使用相同的代码 但它不起作用 文本不会像 EditText 那样变成超链接 有人知道为什么吗 public class MainActivity extends
  • Android TV 上不会出现通知

    我正在 Android TV 上玩通知 不过 我无法在屏幕上显示通知 我正在使用 Android 6 0 上的 Nexus 播放器 当我在手机上运行此代码时 会出现通知 但在电视上 不会出现通知 我错过了什么吗 Override publi
  • 如何将图像调整为原始大小

    Android s imageView has a serious flaw it makes my image into a square frame with the rest as white space How can I fix
  • onKeyEvent 和辅助服务

    我的用户将使用启用 TalkBack 的服务或其他一些无障碍服务 我想捕获我们应用程序中的 onKeyEvent 事件 但该事件被分派到启用的辅助功能服务 我创建了以下基本辅助服务 public class Accessibility Se
  • 当我停止我的应用程序后,IntentService 将被终止

    我指的是android 设计注意事项 AsyncTask 与 Service IntentService https stackoverflow com questions 3817272 android design considerat
  • 在 LibGDX 中保存和检索图像文件

    如何在 LibGDX 中保存和检索图像文件 我想将图像文件保存在 AndroidApplication 类的本地存储中 并在我的 Core 项目中检索它 Libgdx 中的文件处理在libGDX 维基 https github com li
  • 解析 JSONException:JSONArray 文本必须以字符 1 处的 '[' 开头

    我正在尝试将 Android 应用程序与本地 MySQL 数据库连接 但遇到问题 解析 JSON 数组 我在这里阅读了所有类似的问题 但没有任何作用 错误消息 Error parsing data org json JSONExceptio
  • 广播接收器在不同版本的 Android(4.1.1 和 4.2.2)上的工作方式有所不同

    我有一个问题 当我运行我的 Android 应用程序时 它有广播接收器 for WiFi 它在不同版本的 Android 操作系统上表现不同 例如4 1 1 and 4 2 2 当我运行它时4 1 1它工作完美 就像广播接收器在 Wifi
  • 找不到 R.layout.activity_main

    我试图使用一些在线教程来解决多种布局 问题是只要只有一个 XML 文件 我的程序就可以正确构建和编译 当我添加多个 XML 文件时 我收到错误消息 指出该行的 activity main 无法解析或不是字段 setContentView R
  • 主题中的文本外观

    我想将主题中的文本外观设置为 TextAppearnance Large 这是我在 styles xml 中所做的事情 我的应用程序在清单中指向这个主题 问题 我的文字仍然显示很小 问题 我在尝试在活动中使用预定义的 TextAppeara
  • 如何获取 Android 中其他应用程序的屏幕时间?

    我想达到在 Android 系统上运行的每个应用程序的屏幕时间 例如 Facebook 工作时间为 3 小时 但屏幕时间为 1 2 小时 我怎么才能得到它 android app usage 使用情况统计 public final clas
  • 当我的活动结束时,如何停止 GPS/位置跟踪?

    我有一个非常简单的 Android 应用程序 它显示 Google 地图视图并使用 GPS 跟踪位置 基本上像这样 public void onCreate Bundle savedInstanceState mLocationManage
  • 如何创建可以使用拨号盘启动的应用程序

    我想知道如何使用 Dialpad 中的一些代码启动我的 Android 应用程序 就像如果你 3214789650 它会从您的星系启动angryGps 应用程序 如何实施 Thanks 试试这个 使用广播接收器来监听去电号码 清单 xml

随机推荐

  • 避免后台进程被杀死的几种方法

    Android的几种进程 前台进程 即与用户正在交互的Activity或者Activity用到的Service等 xff0c 如果系统内存不足时前台进程是最后被杀死的 可见进程 可以是处于暂停状态 onPause 的Activity或者绑定
  • Android性能优化 -- Systrace工具

    Systrace简介 一般来说 xff0c 我们的机器以60帧 秒显示时 xff0c 用户会感觉机器很流畅 xff0c 如果显示时出现丢帧的情况 xff0c 需要知道当前整个系统所处的状态 xff0c 这个时候Systrace便是最佳的工具
  • Android性能优化 -- 应用启动优化之启动页设计

    上篇博客我们学习了应用启动优化的一些优化思路 xff0c 经过这些优化后 xff0c 如果还不能达到你的要求 xff0c 我们一般会做个启动页 因为启动页一般View数量比较少 xff0c 业务逻辑比较简单 xff0c 因此启动比较快 一
  • Android性能优化 -- 布局优化

    一 前言 根据Google官方出品的Android性能优化典范 xff0c 60帧每秒是目前最合适的图像显示速度 xff0c 事实上绝大多数的Android设备也是按照每秒60帧来刷新的 为了让屏幕的刷新帧率达到60fps xff0c 我们
  • ubuntu server 18.0.4自动免密登录

    参考https zhuanlan zhihu com p 79422682 1 xff09 设置自动登录user sudo vim etc systemd system getty target wants getty 64 tty1 se
  • nginx 反向代理设置中的proxy_redirect

    Nginx做反向代理 xff0c 如果在header设置了Host参数 xff0c 同时如果有协议和二级目录有不一致的情况的时候 xff0c 当后端服务做302 301跳转的时候 需要用proxy redirect将后端设置在respons
  • iOS - OC - ARC中使用MRC(非ARC)文件(草稿)

    设置非arc模式 刚创建的项目是自动管理内存 xff08 arc xff09 的 xff0c 而asi是手动内存管理 xff08 非arc xff09 的 xff0c 可以在创建项目后设置Build Settings的搜索栏里输入gar x
  • 批量识别PDF文件(图片类型)中的文字

    如何批量识别PDF图片中的文字 xff0c 一直是一个效率很低 xff0c 很繁琐的事情 小编为大家提供一款基于tesseract5 0 OCR版本的PDF文件 图片类型 批量识别工具 xff0c 此工具的用途是批量把PDF转换成文本文件
  • 《最重要的事,只有一件》读书笔记

    背景 每天都在忙忙碌碌中度过 xff0c 感觉到很累 xff0c 但仔细思考一下好像也没有收获 仔细想一想 xff0c 在每天之中 xff0c 大脑主动或被动的接受了太多的信息 xff0c 如果没有给信息分出轻重缓急 xff0c 整理归类
  • TS核心知识点总结及项目实战案例分析

    前言 最近工作一直很忙 xff0c 复盘周期也有所拉长 xff0c 不过还是会坚持每周复盘 今天笔者将复盘一下typescript在前端项目中的应用 xff0c 至于为什么要学习typescript xff0c 我想大家也不言自明 xff0
  • Archlinux + KDE 配置&美化

    Arch Linux 43 KDE 配置 amp 美化 xff08 持续更新 xff09 这篇文章着重记录archlinux 43 KDE的一个基本的配置过程 不包括安装过程 xff08 使用arch install安装脚本 xff09 内
  • preference 用法之Settings

    preference 用法之Settings 我们的app有时常需要包含Settings xff0c 那我们该怎样允许app使用Settings呢 xff1f 这里我们就需要用到Preference类 下面我就举一个例子来让我们更好的理解
  • Android7.1解决应用系统属性设置类SystemProperties导入问题

    试了很多种方法 xff0c 有说导入系统的framework jar的 xff0c 试过依然不行 xff0c 最后确认可行的办法就是导入layoutlib jar包 1 在Sdk platform android XX data目录下找到l
  • Android生物识别-androidx.biometric的使用方法

    参考文献 android developer biometric 截止发稿时需要的依赖 implementation span class token string 39 androidx biometric biometric 1 2 0
  • 生产者消费者算法的简单实现

    系列文章目录 文章目录 系列文章目录 实验内容 背景知识 1 了解经典同步问题 生产者和消费者 思路 二 源代码运行结果结论 实验内容 1 问题描述 xff1a 一组生产者向一组消费者提供消息 xff0c 它们共享一个有界缓冲池 xff0c
  • CentOS7.5 VNC Server服务配置

    转载文章 xff1a https blog csdn net hnhuangyiyang article details 50827670 一 安装VNC相关包 yum list tigerserver yum install tigerv
  • 使用github OAuth实现用户登录

    更多文章请关注 xff1a https eightplus github io 1 在github上申请OAuth App xff0c 进入个人的Github首页 xff0c Settings gt Applications gt Deve
  • 二叉搜索树的第k大节点

    二叉搜索树的第k大节点 题目 给定一棵二叉搜索树 xff0c 请找出其中第 k 大的节点的值 示例 1 输入 root 61 3 1 4 null 2 k 61 1 3 1 4 2 输出 4 示例 2 输入 root 61 5 3 6 2
  • 关于STM32的编码器计数及溢出处理调试总结

    错误1 pc6 pc7被用作其他用途 GPIO模式配置错误 导致计数不准确 错误2 引脚模式设置错误 应该设置为GPIO Mode IPD GPIO Mode IPU nbsp GPIO Mode IN FLOATING nbsp 都可以
  • Android getResources的作用和需要注意点

    今天做一个Android的文件管理器 xff0c 里面用到很多的地方用到了getResources Drawable currentIcon 61 null currentIcon 61 getResources getDrawable R