android 代码加载 已知文件名 的资源文件

Android开发中如果需要用到某个资源,直接使用R.drawable.**文件即可。但是如果一开始无法知道具体加载哪个资源文件,必须在程序中动态获取ID值并加载。而加载过程是使用文件名来加载的,方式如下:

public static String RESOURCE_PATH = "android.resource://packagename/";

假设存在一个名为content_icon的资源图片

public Uri getIconUri(String drawableName) {

if (drawableName == null) {

return Uri.EMPTY;

}

return Uri.parse(drawableName);

}

flag.png 為例,可以用:

int idFlag = getResources().getIdentifier(getPackageName() + ":drawable/flag", null, null);

// 或是

int idFlag = getResources().getIdentifier("flag", "drawable", getPackageName());

int idFlag = getResources().getIdentifier(getPackageName() + ":drawable/flag",null, null);

// 或是

int idFlag = getResources().getIdentifier("flag", "drawable", getPackageName());

到這,如何取得 flag1.png ~ flag10.png 的 Drawable 物件,程式碼如下:

var Drawable[] dw = new Drawable[10];

for (int i = 1; i <= 10; i++) {

int id = getResources().getIdentifier("flag" + i,"drawable", getPackageName());

dw[i-1] = getResources().getDrawable(id);

}

时间: 2024-10-05 23:54:17

android 代码加载 已知文件名 的资源文件的相关文章

SpringMVC 无法加载js,css等静态资源文件

最近在一些技术群里看到有些朋友的馈,SpringMVC 无法加载js,css等静态资源文件,运行时报无法找到异常.下面说下原因及解决方法: 由于SpringMVC支持较优雅的Rest风格的URL,url-patten又是配置的支持所有的模式,所以对于静态资源(css,js,html等)也会去进行匹配,一旦匹配失败控制台会抛URI匹配异常. 这种情况下,需要在SpringMVC配置中增加默认的配置 <mvc:default-servlet-handler/> 增加了上面这个配置之后,原来的Req

android动态加载已安装和未安装的apk资源

在android开发中动态加载已安装和未安装的apk资源,是很有用的,可以用来实现换肤功能等等.今天我们来学习. 首先新建一个工程plugpicinstall,我们需要往该工程的asset目录和drawable目录下拷贝一些呆会需要加载的图片.运行该工程,即安装. 我们先看看如何实现加载已经安装的apk中的资源: 我们需要先写两个方法,用来获取对应的已安装的apk的context对象和resource对应的id,如下: /** * 该方法用来获取已经安装的apk对应的context对象 * @r

android动态加载已安装apk中的方法

在android开发中,有很多时候是需要用到动态加载的,今天学习在android中动态加载已安装的apk中的方法. 首先,我们需要新建一个用来被加载的android工程,暂且给他取名叫做:plugproj 在plugproj中新建一个类Dynamic,在这个类中,我们新建一些方法,等会我们会分别在该工程安装和没有安装的情况下加载这些方法,Dynamic.java如下: package com.example.plugproj; import android.app.Activity; impor

Android动态加载代码技术

Android动态加载代码技术 在开发Android App的过程当中,可能希望实现插件式软件架构,将一部分代码以另外一个APK的形式单独发布,而在主程序中加载并执行这个APK中的代码. 实现这个任务的一般方法是: // 加载类cls Context pluginContext = mainContext.createPackageContext(PLUGIN_PKG, Context.CONTEXT_IGNORE_SECURITY | Context.CONTEXT_INCLUDE_CODE)

【转载】一行代码加载网络图片到ImageView——Android Picasso

原文链接:一句代码加载网络图片到ImageView——Android Picasso 在这里介绍一个Android框架:Picasso. picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能.仅仅只需要一行代码就能完全实现图片的异步加载.代码如下: public class MainActivity extends Activity { private ImageView imageV

Android图片加载框架最全解析(二),从源码的角度理解Glide的执行流程

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/53939176 本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注,每天都有文章更新. 在本系列的上一篇文章中,我们学习了Glide的基本用法,体验了这个图片加载框架的强大功能,以及它非常简便的API.还没有看过上一篇文章的朋友,建议先去阅读 Android图片加载框架最全解析(一),Glide的基本用法 . 在多数情况下,我们想要在界面上加载并展示一

React-Native系列Android——SoLoader加载动态链接库

SoLoader是facebook出品的一款小巧的用于加载so库文件的开源项目,主要作用是自动检查和加载多个有依赖关系的so库文件.在Android平台下React-Native项目大量使用了动态链接库,即JNI技术,作为Java和Javascript两种程序语言之间的通信桥梁. 解压一个React-Native项目的安装包apk文件,我们可以看到一共有15个so库文件,其中libreactnativejni.so是JNI桥梁的入口. 而libreactnativejni.so又依赖于以下12个

一起写一个Android图片加载框架

本文会从内部原理到具体实现来详细介绍如何开发一个简洁而实用的Android图片加载缓存框架,并在内存占用与加载图片所需时间这两个方面与主流图片加载框架之一Universal Image Loader做出比较,来帮助我们量化这个框架的性能.通过开发这个框架,我们可以进一步深入了解Android中的Bitmap操作.LruCache.LruDiskCache,让我们以后与Bitmap打交道能够更加得心应手.若对Bitmap的大小计算及inSampleSize计算还不太熟悉,请参考这里:高效加载Bit

Android中加载位图的方法

Android中加载位图的关键的代码: AssetManager assets =context.getAssets(); //用一个AssetManager 对象来从应用程序包的已编译资源中为工程加载资产 InputStream istream=assets.open("/*位图的名字*/"); BitmapFactory.Options options=new BitmapFactory.Options(); options.inPreferredConfig =Bitmap.Co