怎么调用getresource方法
使用getIdentifier()方法可以方便的获各应用包下的指定资源ID。
主要有两种方法:
(1)方式一
Resources resources = context.getResources();
int indentify = resources.getIdentifier(org.loveandroid.androidtest:drawable/icon",null,null);
if(indentify>0){
icon = resources.getDrawable(indentify);
}
第一个参数格式是:包名 + : +资源文件夹名 + / +资源名;是这种格式 然后其他的可以为null
(2)方式二
Resources resources = context.getResources();
intindentify= getResources().getIdentifier("icon", "drawable", "org.anddev.android.testproject");
第一个参数为ID名,第二个为资源属性是ID或者是Drawable,第三个为包名。
如果找到了,返回资源Id,如果找不到,返回0 。
写了一个方法:获取资源ID,如果不存在返回0
static int getResourceId(Context context,String name,Stringtype,String packageName){
ResourcesthemeResources=null;
PackageManager pm=context.getPackageManager();
try {
themeResources=pm.getResourcesForApplication(packageName);
returnthemeResources.getIdentifier(name, type, packageName);
} catch(NameNotFoundException e) {
e.printStackTrace();
}
return0;
}
从数据库里读取图片名称,然后调用图片。直接用R.drawable.?无法调用。查了好多地
主要由两种方法,个人建议第二种。
1.不把图片放在res/drawable下,而是存放在src某个package中(如:com.drawable.resource),这种情况下的调用方法为:
String path = "com/drawable/resource/imageName.png";
InputStream is = getClassLoader().getResourceAsStream(path);
Drawable.createFromStream(is, "src");
2. 如果还是希望直接使用res/drawable中的图片,就需要通过下面的方法了:
假设创建工程的时候,填写的package名字为:com.test.image
int resID = getResources().getIdentifier("imageName", "drawable","com.test.image");
Drawable image = getResources().getDrawable(resID);
Android开发中,如何在静态类中使用getResources()获取图片资源.
获取resource需要context对象,所以你这个问题有如下几个解决思路
1,使用Context作为参数,例如public
static
getResourcesStatic(Context
context,
int
resId)
2,使用Context作为成员变量,在构造函数中接受一个Context参数,并赋值给自己成员变量
这样在此对象生命期内,都可以使用.
不过并不推荐这种做法,因为传入的Context多数情况下是Activity,往往会附着很多资源,如背景图片等,无法GC,导致过高的内存占用.可以用下面的改进方式:
3,使用WeakReference
保存context的弱引用
使用时要注意判断ref.get()是否为null
android的getResources()报错如何解决?
在AndroidStudio的Library工程目录下build.gradle同级目录添加文件"public-xml.gradle"。
在Library的build.gradle文件中添加如下内容:applyfrom:'public-xml.gradle' 。
在AndroidStudio的app主工程的build.gradle同级目录下添加文件"public-xml.gradle"。 这个脚本与Library中脚本的唯一区别就是applicationVariants和libraryVariants。
在app的build.gradle文件中添加如下内容:applyfrom:'public-xml.gradle' 。
然后,重新rebuild工程即可(核实AndroidStudio生成的R文件与public.xml文件中ID一致)。
java的ClassLoader的getResources方法怎么使用
API文档:
getResourcespublic Enumeration<URL> getResources(String name)
throws IOException
查找所有给定名称的资源。资源是可以通过类代码以与代码基无关的方式访问的某些数据(图像、声音、文本等)。
资源名称是以 '/' 分隔的标识资源的路径名称。getResource(String) 的文档中描述了搜索顺序。
参数:
name - 资源名称
返回:
资源的 URL 对象的枚举。如果找不到资源,则该枚举将为空。类加载器无权访问的资源不在此枚举中。
抛出:
IOException - 如果发生 I/O 错误
Android中的是getResource()方法返回什么?
返回的是Resources这个类对象,然后你可以通过它来加载res目录(如下图)下的资源,如加载图片:getResources().getDrawable(R.drawable.cancel);加载字符串:getResources().getString(R.string.accept_info);
res目录
android下怎么获取res资源文件夹的路径
android无法获取res资源文件夹路径,只能通过系统提供的封装函数访问。
资源文件夹有:
/res/drawable
,通过getresources()访问
/res/values
,通过getresources()访问
/res/layout,通过getresources()访问
/res/xml,通过getresources()访问
/res/raw,通过getresources()访问
/asts,通过getasts()访问