Android 获取有规律资源Id解决方案
在多个有规律的资源ID获取的时候,可以使用getIdentifier方法来获取,来获取。
用到场景:工具类打成.jar包的时候,有时候会需要引用到res中的资源,这时候不能将资源一起打包,只能通过反射机制动态的获取资源.
param defType:"layout","string","drawable","style","color","array"
Parameters
name | The name of the desired resource. |
---|---|
defType | Optional default resource type to find, if "type/" is not included in the name. Can be null to require an explicit type. |
defPackage | Optional default package to find, if "package:" is not included in the name. Can be null to require an explicit package. |
Returns
- int The associated resource identifier. Returns 0 if no such resource was found. (0 is not a valid resource ID.)
from: http://developer.android.com/reference/android/content/res/Resources.html
public static int getDrawableId(Context paramContext, String paramString) { return paramContext.getResources().getIdentifier(paramString, "drawable", paramContext.getPackageName()); }
对于这个方法,官方不推荐:
Note: use of this function is discouraged. It is much more efficient to retrieve resources by identifier than by name.
更好的解决方案,是参照另外一篇博客的使用反射实现的。
http://www.liaohuqiu.net/cn/posts/android-get-resource-id-by-string/
示例代码:
public static int getResId(String variableName, Class<?> c) {try {Field idField = c.getDeclaredField(variableName);return idField.getInt(idField);} catch (Exception e) {e.printStackTrace();return -1;}
}
使用:
int id = ResourceMan.getResId("icon", R.drawable.class);
这种效率据说比第一种高了4倍。
Android 获取有规律资源Id解决方案相关推荐
- android 获取应用的资源id和uri
2019独角兽企业重金招聘Python工程师标准>>> 在某些应用中,为了实现应用apk资源放入重复利用,或者使用反射得到本应用的资源,需要使用反射反射方式获得,但Resources ...
- android获取控件的id(标识符)-根据控件id获取对应的值或控件名字-动态获取R.string的值
更多其他页面-自定义View-实用功能合集:点击查看 项目中需要动态获取资源R.string的值,记录一下解决方案. demo链接: link. 直接先上个示例,下面再有详细解说: @Override ...
- Android - 获取移动端设备ID标识,分情况
目前需求:未登录的用户(游客)需要与客服实时通讯,要怎么区分用户消息? 思路:获取游客的设备ID,以此为标识传给服务器来查询/发送信息,一设备为一用户. 那设备ID是什么?怎么获取呢? 设备ID,就是 ...
- android获取设备唯一标识完美解决方案
转自:https://blog.csdn.net/aa1733519509/article/details/50053553 有时需要对用户设备进行标识,所以希望能够得到一个稳定可靠并且唯一的识别码. ...
- android获取短信息,从其ID Android获取短信详细信息
我想得到短信的细节(数字,正文,来的时间);我只知道短信的身份. 我可以使用此ID查询"content:// sms"并获取详细信息吗? 目前,我可以循环查询每条消息并获取详细信息 ...
- Android获取本地图片缩略图终极解决方案
QAQ学Android真的还是要在项目中获得锻炼,脱离实际一切都是耍流氓哼唧~! 花了一下午时间搞定了项目中要实现的:获取本地图片缩略图并显示在ListView上的,并且点击要能获得该图片文件路径功能 ...
- android 获取网络视频资源,Android 加载网络视频(url地址)第三方框架简用
正好最近做项目有个需要加载网络视频技术,就找了找,碰到了这个开源的框架.主要还是网络请求下来的视频地址,然后简单的,赋一下值,非常OK.不过限自己练习用毕竟看需求的嘛,不多介绍复制用吧. 先看看效果大 ...
- 【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(); ...
最新文章
- python绘制曲线图-python怎么画曲线图
- 引用第三方高德地图接口---使用js脚本进行开发地图定位的步骤
- canvas反向裁剪技巧
- arm-linux-androideabi-addr2line
- 对比Excel学Python(二)数据可视化
- 如何在手机上查看APP原型
- 华为实习面经(技术面+主管面)
- 带有风的诗词_带有风字的诗句
- 自动驾驶综述|定位、感知、规划常见算法汇总
- 从小玩到大的铁哥们突然跟我表白,该怎么面对?
- nargin与varargin的用法
- 数据类型、变量、字符串(工匠工坊第二课)
- leetcode---1758.生成交替二进制字符串的最少操作数
- 2020/01/03 基于sharedLibrary进行CICD流程的优化(一)
- 微信OAuth授权获取用户OpenId-JAVA(个人经验)
- 微信小程序--嘟嘟会议--会议发布和我的会议查看
- 8、【循环练习-蜗牛爬井】井里有一只蜗牛,他白天往上爬5米,晚上掉3.5 米,井深56.7米,计算蜗牛需要多少天才能从井底到爬出来。
- ElGamal算法实现
- SAP中库存周转率算法
- 猎豹浏览器抢票功能遭屏蔽 要“约谈”12306
热门文章
- 海量数据挖掘MMDS week3:流算法Stream Algorithms
- Git版本控制:Git分支处理
- astc贴图格式是什么意思_SP多象限UV贴图的使用方法!
- centos7 默认启动项_如何在centos7中搭建 ISCSI 服务
- matlab软件及基础实验第8单元,知到高等数学与MATLAB启蒙第八单元章节测试答案...
- python窗口怎么显示我输入的_Python分别用两个窗口显示和输入
- 蓝桥杯2016年第七届C/C++省赛B组第四题-快速排序
- Kotlin — 协程简介与使用
- Django model 反向引用中的related_name
- ORACLE错误6650