ITPub博客

首页 > IT职业 > IT职场 > Android使用getIdentifier()方法根据资源名来获取资

Android使用getIdentifier()方法根据资源名来获取资

IT职场 作者:TigerJin 时间:2021-09-09 09:48:10 0 删除 编辑

有时候我们想动态的根据一个资源名获得到对应的资源id,就可以使用getResources().getIdentifier()方法来获取该id。然后再使用该id进行相关的操作。

图片描述

打印出来的log为:

11-24 22:15:02.471 12023-12023/com.oyp.demo D/MainActivity: ----> 获取到的图片资源 drawableId= 213096860111-24 22:15:02.476 12023-12023/com.oyp.demo D/MainActivity: ----> 获取到的图片资源 drawableId=213083757911-24 22:15:02.477 12023-12023/com.oyp.demo D/MainActivity: ----> 获取到的图片资源 mipmapId=213090304011-24 22:15:02.477 12023-12023/com.oyp.demo D/MainActivity: ----> 获取到的字符串资源 stringId=2131099669

我们打开编译好后的 com.oyp.demo.R文件 

首先来看看activity_main这个layout的id是不是和我们打印出来的一样是2130968601,如下图所示,在 com.oyp.demo.R文件中,activity_main的值确实是2130968601 

部分代码如下所示:

public static final class layout {
        ......        public static final int abc_screen_simple = 2130968595;        public static final int abc_screen_simple_overlay_action_mode = 2130968596;        public static final int abc_screen_toolbar = 2130968597;        public static final int abc_search_dropdown_item_icons_2line = 2130968598;        public static final int abc_search_view = 2130968599;        public static final int abc_select_dialog_material = 2130968600;        public static final int activity_main = 2130968601;        public static final int notification_media_action = 2130968602;        public static final int notification_media_cancel_action = 2130968603;        public static final int notification_template_big_media = 2130968604;        public static final int notification_template_big_media_narrow = 2130968605;

        ......        public layout() {
        }
    }

drawable类型的图片 ic_launcher 的资源id 为 2130903040

 public static final class mipmap {
        public static final int ic_launcher = 2130903040;        public mipmap() {
        }
    }

drawable类型的图片 oyp 资源id为 2130837579

public static final class drawable {
        ......        public static final int abc_textfield_search_material = 2130837578;        public static final int notification_template_icon_bg = 2130837580;        public static final int oyp = 2130837579;        public drawable() {
        }
    }

String类型的资源author id为 2131099669

public static final class string {

        ......        public static final int app_name = 2131099668;        public static final int author = 2131099669;        public static final int status_bar_notification_info_overflow = 2131099667;        public static final int title = 2131099670;        public string() {
        }
    }

可以发现打印出来的资源id和com.oyp.demo.R文件生成的资源id是一致的,因此使用getResources().getIdentifier()方法完全可以正确地获取资源的id。

http://www.apkbus.com/blog-865196-76899.html

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2144/viewspace-2812648/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-06-28

  • 博文量
    494
  • 访问量
    25757