Android获取所有应用的资源id和对应的uri
背景在某些应用中,为了实现应用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); }
Android获取所有应用的资源id和对应的uri相关推荐
- android 指定资源id,Android平台下如何固定资源ID
文章转自半导体人社群芯方式 [QUESTION] 如何固定资源ID [ANSWER] 一般情况,同一个资源,因为程序的不停修改,不同版本编译后,这个资源产生的ID可能会变化.对于一个独立的apk来说, ...
- android获取drawable路径,从资源文件中获取drawable
丑话说前头,本文转自: http://stackoverflow.com/questions/29041027/android-getresources-getdrawable-deprecated- ...
- android 获取应用的资源id和uri
2019独角兽企业重金招聘Python工程师标准>>> 在某些应用中,为了实现应用apk资源放入重复利用,或者使用反射得到本应用的资源,需要使用反射反射方式获得,但Resources ...
- android获取导航栏宽高,Android获取屏幕的宽高度、状态栏、标题栏、导航栏、编辑区域高度...
目录 0.相关文章: 1.获取屏幕款高度 代码: /** * 获取屏幕宽度 * * @param context 上下文对象 * @return int */ public static int ge ...
- 【Android 安装包优化】移除无用资源 ( 自动移除无用资源 | 直接引用资源 | 动态获取资源 id | Lint 检查资源 )
文章目录 一.自动移除无用资源 ( 不推荐使用 ) 二.直接引用资源与动态获取资源 1.直接引用资源 2.动态获取资源 id 三.Lint 检查资源 四.参考资料 一.自动移除无用资源 ( 不推荐使用 ...
- Android开发之SDK开发获取资源id报错的问题
我们在开发SDK的时候有时候需要兼容Eclipse版本和AS版本,AS版本就不说了没多大问题,主要是Eclipse版本会有问题.当开发之使用Eclipse开发的时候接入jar包(AS打包成aar,解压 ...
- Android之使用getIdentifier()获取资源Id
使用getIdentifier()方法可以方便的获各应用包下的指定资源ID. 主要有两种方法: (1)方式一 Resources resources = context.getResources(); ...
- android 指定资源id,Android 通过名称获取资源ID
当我们获取网络数据的时候,解析之后往往都是一个字符串,而不是资源id,所有我们没有办法直接使用,只能通过名称来获取到资源id, package com.example.administrator.de ...
- android工程换背景图片,android换肤功能 如何动态获取控件中背景图片的资源id?
这个是在在做一个换肤功能时遇到的问题. 对于换肤,网上都有示例,可以从别的皮肤安装包中读取所要的资源,前提是你必须先持有这个资源的引用名称,像R.drawable.background(喂,这不是废话 ...
最新文章
- 微信小程序之wx:if视图层的条件渲染
- socket 编程入门教程(一)TCP server端:3、sockaddr与sockaddr_in
- php 多个数组乘积_VLOOKUP参数使用数组
- 关于linux LVM
- 牛客 - 斐波那契和(杜教BM)
- zabbix常见配置集合
- 【bzoj2151】种树
- HDU 6599 I Love Palindrome String (回文树+hash)
- 使用C语言构造一个简单计算器
- ovm安装过程及中断处理
- Python3 粗略计算PI的值
- java代码自动抠图_Opencv java实现人脸抠图和行为识别
- Maxent模型预测
- 【NOIP模拟】我的天
- 一篇小论文:VGGish-BiGRU网络
- hadoop错误org.apache.hadoop.yarn.exceptions.YarnException Unauthorized request to start container
- 图解机器人瓦力_从机器人瓦力看爱情
- 张量的向量化vectorization、模n(mode-n)展开
- 我想去 河南省 郑州春苑置业有限公司 上班 待遇好不好
- android添加内存卡,SD卡变RAM 增加虚拟内存方法