Android开发之——使用getIdentifier()方法根据资源名来获取资源id
一 前言本文主要讲述通过getIdentifier()方法根据资源名获取资源id,并根据获取到的资源id进行相应的操作;根据布局名字获取id设置ContentView(要显示布局)根据drawable图片名字获取资源id,设置显示图片根据mipmap图片名字获取资源id,设置显示图片根据R.string.xx名字资源id,设置字符串根据R.dimen.xx名字获取资源id,...
一 前言
本文主要讲述通过getIdentifier()方法根据资源名获取资源id,并根据获取到的资源id进行相应的操作;
- 根据布局名字获取id设置ContentView(要显示布局)
- 根据drawable图片名字获取资源id,设置显示图片
- 根据mipmap图片名字获取资源id,设置显示图片
- 根据R.string.xx名字资源id,设置字符串
- 根据R.dimen.xx名字获取资源id,设置文字大小
- 根据R.color.xx名字获取资源id,设置文字颜色
- 根据R.style.xx名字获取资源id,设置文字样式
- 其他(R.anim.xx,R.array.xx,R.attr.xx等)
二 Demo示例
2.1 代码结构
2.2 代码功能
2.2.1 根据布局名字获取id设置ContentView(要显示布局)
复制
| |
注:
- setContentView(layoutID)代替setContentView(R.layout.activity_main)
- 项目正常启动且正确显示
2.2.2 根据drawable图片名字获取资源id,设置显示图片
复制
| |
注:
- tvIdentifierDrawable 是TextView的ID
- 获取的drawableID用于给TextView设置drarableBottom显示图片
2.2.3 根据mipmap图片名字获取资源id,设置显示图片
复制
| |
注:
- tvIdentifierMipMap 是TextView的ID
- 获取的mipmapId用于给TextView设置drarableBottom显示图片
2.2.4 根据R.string.xx名字资源id,设置字符串
复制
| |
注:
- stringID是R.string.app_name通过getIdentifier获取的资源id
- 通过TextView.setText(R.id.stringID)来显示或者getString(stringID)(kotlin中赋值)
2.2.5 根据R.dimen.xx,R.color.xx,获取资源id,设置文字大小和颜色
复制
| |
注:
- dimenID是R.dimen.sp_30通过getIdentifier获取的资源id
- colorID是R.color.colorAccent通过getIdentifier获取的资源id
- TextView.apply给textView中的文字大小和颜色赋值
2.2.6 根据R.style.xx名字获取资源id,设置文字样式
复制
| |
注:
-
style样式
复制1 2 3 4 5 6 7
<style name="MatchMatch"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">@dimen/dp_15</item> <item name="android:textStyle">bold</item> <item name="android:textSize">20sp</item> <item name="android:textColor">@color/colorPrimary</item> </style>
-
TextView.setTextAppearance给textView设置样式
三 R文件信息(Kotlin模式下)
3.1 R文件的位置
-
app/build/intermediates/javac/debug/classes/package/R.class
3.2 R文件结构
-
Windows 下按 Alt+7,Mac 下应该是 Command+7
3.3 根据获取到的值跟R文件中的值对比
- 对比通过代码获取的值
- 查询R文件中对应的值
- 两者对比是否相同
四 getIdentifier()源码查询
复制
| |
五 其他
参考:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)