Android使⽤getIdentifier()获取资源Id的⽅法
本⽂实例讲述了Android使⽤getIdentifier()获取资源Id的⽅法。分享给⼤家供⼤家参考,具体如下:
int i= getResources().getIdentifier("icon", "drawable", getPackageName()) ;
if(i>0)
{Log.i("aa","aa");}
android获取真正的签名else
{Log.i("vbv","aa");}
或者:
int resID = getResources().getIdentifier("org.loveandroid.androidtest:drawable/gallery_photo_1",null,null);
int resID = getResources().getIdentifier("org.stproject:drawable/bug", null, null);
// or
int resID = getResources().getIdentifier("bug", "drawable", "org.stproject");
//第⼀个参数:full_package:type/filename_without_ending是这种格式然后其他的可以为null
int idFlag = getResources().getIdentifier(getPackageName() + ":drawable/flag", null, null);
// 或是
int idFlag = getResources().getIdentifier("flag", "drawable", getPackageName());
var Drawable[] dw = new Drawable[10];
for (int i = 1; i <= 10; i++) {
int id = getResources().getIdentifier("flag" + i, "drawable", getPackageName());
dw[i-1] = getResources().getDrawable(id);
}
//⽤反射法可以得到所有的资源
private void
_DumpAllResourceIDs(Class<?> classType)
throws IllegalArgumentException {
Field[] fIDs = Fields();
try {
for (int i = 0; i < fIDs.length; i++) {
Field fld = fIDs[i];
int nID = Int(null);
Log.d("dbg",
i + ": " +
nID);
}
} catch (Exception e) {
throw new IllegalArgumentException();
}
}
import flect.Field;
...
_DumpAllResourceIDs(R.layout.class);
_DumpAllResourceIDs(R.drawable.class);
结果:
R$layout 0: main=2130903040
R$layout 1: small_spinner_dropdown_item=2130903041
R$drawable 0: icon=2130837504
有时候我们需要动态的取得⼀个⼀个控件的id,然后进⾏操作,经过在⽹上查,到了⼀下⽅法
getResources().getIdentifier("textView01", "id", "");
第⼀个参数为ID名,第⼆个为资源属性是ID或者是Drawable,第三个为包名。
做项⽬过程中遇到⼀个问题,从数据库⾥读取图⽚名称,然后调⽤图⽚。直接⽤R.drawable.?⽆法调⽤。查了好多地⽅最后到了个⽅法,分享给⼤家,希望有帮助。
主要由两种⽅法,个⼈建议第⼆种。
1. 不把图⽚放在res/drawable下,⽽是存放在src某个package中(如:source),这种情况下的调⽤⽅法为:
String path = "com/drawable/resource/imageName.png";
InputStream is = getClassLoader().getResourceAsStream(path);
2. 如果还是希望直接使⽤res/drawable中的图⽚,就需要通过下⾯的⽅法了:
假设创建⼯程的时候,填写的package名字为:st.image
int resID = getResources().getIdentifier("imageName", "drawable", "st.image");
Drawable image = getResources().getDrawable(resID);
更多关于Android相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》、《》、《》及《》希望本⽂所述对⼤家Android程序设计有所帮助。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论