首页 > 其他分享 >判断资源存在与否如判断一个drawable的图片存在及通过id加载图片

判断资源存在与否如判断一个drawable的图片存在及通过id加载图片

时间:2022-10-06 11:32:18浏览次数:86  
标签:Java int 图片 getIdentifier drawable null id getResources



留下来以后备用!

int i= getResources().getIdentifier("icon", "drawable", getPackageName()) ;
if(i>0)
{Log.i("aa","aa");}
else
{Log.i("vbv","aa");}或者
int resID = getResources().getIdentifier("org.loveandroid.androidtest:drawable/gallery_photo_1",null,null);

int resID = getResources
(
).
getIdentifier
(
"org.anddev.android.testproject:drawable/bug",
null,
null
);

// or

int resID = getResources
(
).
getIdentifier
(
"bug",
"drawable",
"org.anddev.android.testproject"
);


第一个参数其实


full_package:type/filename_without_ending是这种格式 然后其他的可以为null



Java代码 ​



int idFlag = getResources().getIdentifier(   
getPackageName() + ":drawable/flag",
null, null);
// 或是
int idFlag = getResources().getIdentifier(
"flag", "drawable", getPackageName());



Java代码 ​



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);
}



Java代码 ​​ ​​​ ​​



private void    
_DumpAllResourceIDs(Class<?> classType)
throws IllegalArgumentException {
Field[] fIDs = classType.getFields();

try {
for (int i = 0; i < fIDs.length; i++) {
Field fld = fIDs[i];
int nID = fld.getInt(null);
Log.d("dbg",
classType.getSimpleName() + " " +
i + ": " +
fld.getName() + "=" +
nID);
}
} catch (Exception e) {
throw new IllegalArgumentException();
}
}



Java代码 ​​ ​​​ ​​




import java.lang.reflect.Field;   
...
_DumpAllResourceIDs(R.layout.class);
_DumpAllResourceIDs(R.drawable.class);



Java代码 ​​ ​​​ ​​​ ​


1. R$layout 0: main=2130903040
2. R$layout 1: small_spinner_dropdown_item=2130903041
3. R$drawable 0: icon=2130837504



标签:Java,int,图片,getIdentifier,drawable,null,id,getResources
From: https://blog.51cto.com/jdsjlzx/5733512

相关文章

  • Android实现图片倒影效果
    ​​android倒影实现抖动的镜面效果​​​​http://clareshao.iteye.com/blog/1419695​​android中的gallery的一个样式,具有倒影效果。左右滑动也不错。​​http://down......
  • Android开发--构建项目安装包APK(debug版)
    1.build→BuildAPK(s),点击即可构建2.点击日志可以查看构建情况3.点击locate即可进入debug文件夹4.也可以在构建完成后直接按照路径找到debug文件夹其中apk文件即所需安装......
  • JAVA1.8-SSL错误:javax.net.ssl.SSLHandshakeException: sun.security.validator.Valid
    问题现象JavaSpring应用发送数据报如下问题。2022-10-0610:04:19.068ERROR23100---[nio-8081-exec-1]o.a.c.c.C.[.[.[/].[dispatcherServlet]:Servlet.se......
  • ArcGIS Pro 修改一个图片element
    1IEnumerable<LayoutProjectItem>layouts=Project.Current.GetItems<LayoutProjectItem>();2foreach(LayoutProjectItemlayoutIteminlayouts)3......
  • Android类加载流程
    背景由于前前前阵子写了个壳,得去了解类的加载流程,当时记了一些潦草的笔记。这几天把这些东西简单梳理了一下,本文分析的代码基于Android8.1.0源码。流程分析从loadClass......
  • IDEA 项目视图保存节点展开状态
    没兴趣看过程的,请直接跳转到「解决方案」部分。问题现象IDEA折叠再展开之后,之前展开的状态就没有了(若gif未自动播放,可在新标签页打开):不像Eclipse可以保存展开状......
  • openfeign出现错误No Feign Client for loadBalancing defined. Did you forget to in
    SpringCloudOpenFeign报错NoFeignClientforloadBalancingdefined.Didyouforgettoincludespring-cloud-starter-loadbalancer?问题原因使用SpringInitializ......
  • 把图片和可执行文件捆绑/照片里加入可执行文件
     https://www.bilibili.com/video/BV1Ws411k7wc/?spm_id_from=autoNext&vd_source=1a84936c901164ff619ce0d149f89044&t=1.0捆绑第一步win+r输入cmd第二步输入 c......
  • ida反汇编失败
    options->general->打开堆栈指针(stackpointer)可见反汇编失败提示的地址(本程序为00101481,原本此处不为000)处堆栈指针不为0,因此需要修改alt+K,修改偏移量为此时......
  • POJ - 2348 Euclid's Game
    Euclid'sGame博弈很经典的博弈了首先明确每个状态必然都对应着一个局面,先手必败\(or\)先手必胜如果当前局面对于先手来说是能够选择的,也就是\(b>=a*2\),对于一......