博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android获取所有应用的资源id和对应的uri
阅读量:6718 次
发布时间:2019-06-25

本文共 1592 字,大约阅读时间需要 5 分钟。

背景在某些应用中,为了实现应用apk资源放入重复利用,或者使用反射得到本应用的资源,需要使用反射方式获得,但Resources类中也自带了这种获取方式,并且功能更加强大你可以获取string,color,drawable,raw,xml等文件,因此也就意味着,这里可以获取的资源是res中已定义的资源,对于控件id的获取,暂时无法做到public int getIdentifier(String name, String defType, String defPackage) {    if (name == null) {        throw new NullPointerException("name is null");    }    try {        return Integer.parseInt(name);    } catch (Exception e) {        // Ignore    }    return mAssets.getResourceIdentifier(name, defType, defPackage);}获取资源的Id    获取当前应用的资源Idint drawableId = mContext.getResources().getIdentifier("ic_launcher","drawable", mContext.getPackageName());mImageView.setImageResource(drawableId);    获取其他应用的资源Idint id = mContext.getResources().getIdentifier("icon", "drawable", "com.android.testproject");// 或者int id = mContext.getResources().getIdentifier("com.android.testproject:drawable/icon", null, null);    整合到一起public static int getResourceId(Context context, String name, String type, String packageName){    Resources themeResources=null;    PackageManager pm=context.getPackageManager();    try {        themeResources=pm.getResourcesForApplication(packageName);        return themeResources.getIdentifier(name, type, packageName);    } catch (NameNotFoundException e) {        e.printStackTrace();    }    return 0;}获取系统资源Idint id = getResources().getIdentifier("actionbar_bg", "drawable","android");  //注意,最后一个参数必须是“android”获取资源的Uriandroid系统中,应用的资源存储时也通常会被存入 数据库,也可以被共享,因此来说资源也可以获得uripublic static  Uri getResourceUri(int resId,String packageName) {    return Uri.parse("android.resource://"+packageName+"/"+resId);}

 

转载地址:http://jhkmo.baihongyu.com/

你可能感兴趣的文章
pstree
查看>>
RHCS多节点部署应用企业环境
查看>>
Apache反向代理Tomcat(mod_proxy方式)
查看>>
安装Gitlab 10.5.2社区版
查看>>
cut命令详解
查看>>
linux知识散记(1)-----64位的系统运行32位程序
查看>>
只有坚持,坚持,在坚持,才能取得最后的成功
查看>>
常用的加密算法--对称加密
查看>>
shell学习之xargs
查看>>
360手机卫士获2011移动互联网最佳应用
查看>>
网络出现故障 托福网考遭遇“卡壳”
查看>>
戴尔携手微软:开发私有云系统
查看>>
S3c2410_SDIO_调试笔记<一>
查看>>
zabbix监控windows tcp连接数
查看>>
Java5线程并发库之其他同步工具类
查看>>
MySQL5.5源码包和5.6源码包安装
查看>>
关于上报错误最简单的实现方式--利用图片
查看>>
知识图谱与问答系统
查看>>
我的友情链接
查看>>
linux开机启动jar
查看>>