`
learnmore
  • 浏览: 588408 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

安卓如何通过变量获取资源id

 
阅读更多

    为了灵活显示图片,往往会通过设置一些变量来实现,而字符串是比较经常被使用到的

    下面介绍2种通过字符串显示图片的方法

    1. 使用Resources 类的 getIdentifier方法
       Resources res=getResources();
       return res.getIdentifier(type,"drawable",getPackageName());//这里type代表变量名称,getPackageName()替换为你的R资源文件所在的包名

   getResources方法是来自于contenxt(也就是Activity类),它直接可以返回一个Resouces对象。而Resouces的getIdentifier方法可以返回R.java中的任何资源id,当然,你必须指定3个参数:字段名,类名,包名。包名指定了的 全限定名的包名部分,如果R 的全限定名为 android.R 或者 com.company.R,则包名在这里就是“android”或“com.company”。getPackageName其实是this.getPackageName(),它直接返回本类的包名。

类名则是资源所属的类。比如我们知道的,在R.java 类中的几个固定的类:drawable、id、string、layout等,在它们下边又定义了许多资源id。

字段名则是资源id的名字。比如这个资源id定义: public static final int del=0x7f020002;

del就是一个资源id的名字,0x7f020002则是它的16进制值。

通过3个参数,getIdentifier 方法就可以通过比较动态的方式获得资源id。
    2. 通过反射来获取
       try{

  Field field=R.drawable.class.getField(type);//变量名称

  int i= field.getInt(new R.drawable());

  Log.d(tag,i+"");

  return i;

}catch(Exception e){
  Log.e(tag,e.toString());
  return R.drawable.unknow;
}
分享到:
评论

相关推荐

    通过字符串变量名获取资源ID

    给一个字符串,比如suzhou,有一个图片的名字也叫suzhou,如何通过字符串获取该图片的资源ID。文档中解答

    Android插件框架Android-Plugin-Framework.zip

    关键是要重写几个获取资源、主题的方法,以及重写getClassLoader方法 5、插件中的LayoutInfalter 通过第4步构造出来的Context获取LayoutInfater即可 6、如何实现插件代码不依赖任何特殊代码,如继承特定的...

    基于python+appium的android微信自动添加好友及爬取其朋友圈的爬虫+源代码+文档说明

    不同版本微信可能控件id不同,可以通过android sdk里的uiautomatorviewer或者appium设置session获取自己手机微信的控件id,并替换文件中的id。 -------- 该资源内项目源码是个人的毕设,代码都测试ok,都是运行成功...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    精通ANDROID 3(中文版)1/2

    3.1.4 定义资源ID供以后使用  3.1.5 已编译和未编译的Android资源  3.2 Android关键资源  3.3 使用任意XML资源文件  3.4 使用原始资源  3.5 使用资产  3.6 了解资源目录结构  3.7 资源和配置更改  ...

    精通Android 3 (中文版)2/2

    3.1.4 定义资源ID供以后使用  3.1.5 已编译和未编译的Android资源  3.2 Android关键资源  3.3 使用任意XML资源文件  3.4 使用原始资源  3.5 使用资产  3.6 了解资源目录结构  3.7 资源和配置更改  ...

    Android C++高级编程:使用NDK_Onur Cinar, 于红PDF电子书下载 带书签目录 完整版

    6.7.1 获取应用程序用户和组ID 153 6.7.2 获取应用程序用户名 154 6.8 进程间通信 154 6.9 小结 154 第7章 原生线程 155 7.1 创建线程示例项目 155 7.1.1 创建Android项目 155 7.1.2 添加原生支持 157 7.1.3...

    Android反编译代码和防止反编译

    安装ApkTool工具,该工具可以解码得到资源文件,但不能得到Java源文件。  安装环境:需要安装JRE1.6 1> 到http://code.google.com/p/android-apktool/  下载apktool1.3.2.tar.bz2 和apktool-install-windows-2.2_...

    Android自定义View实现QQ音乐中圆形旋转碟子

    2、获取我们res的图片资源后,在ondraw方法中进行绘制圆形图片 3、通过Handler发送Runnable来启动旋转线程(如果只想做圆形头像的话,这步可以去掉) 4、在布局中使用我们的View 效果图: 贴出我们的变量信息: ...

    菲菲更名宝贝 菲菲更名宝贝

    ■ 支持提取标签更名和批量修改标签的音乐文件标签种类:各音乐格式自有标签和APE、ID3v1和ID3v2标签;支持音乐格式包括:MP3、APE、FLAC、ASF、WAV、AAC、OGG、MPC、MP4、TTA、AC3、WavPack、OptimFrog、TwinVQ ■ ...

Global site tag (gtag.js) - Google Analytics