问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

fmx中的image作为按钮时候的3态,该怎么处理

发布网友 发布时间:2022-04-25 14:44

我来回答

2个回答

热心网友 时间:2022-04-20 12:08

  Android中的R.java文件是android自动生成的资源文件,因为java是不能直接访问xml文件的,但是android的布局是在xml文件中写的,所以需要借助R.java文件来获取布局文件中的android组件。

  在布局文件中使用android:id="@+id/testid"来唯一标识这个组件id是不能重名的。
  在java文件中可以通过(ImageView)findViewById(R.id.testid);来获取id,也就是相当于实例化吧。
  findViewById是我们获取layout中各种View 对象比如按钮、标签、ListView和ImageView的便利方法。
  资源id在Android中是如此重要,因此我们只要获得了资源id,即可获得资源。因为某些情况下,我们不能使用某个常量作为资源id(因为我们想用一个变量代替它),所以只能采用两种方式动态获取资源id
  下面是动态获取id的2中方法
  
  1、反射
  java的反射是如此强大,以至于我们在走投无路时总是想起它。我们来看一段代码:
  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;
  }
  type是一个变量,他的可能值会是“close”、“edit”、“icon”等。我们通过java的反射类Field 去访问 R.drawable 类下面的某个字段。实际上,我们知道在R.drawable 下的字段就是 res.drawable-xxxx 目录下的图片文件的资源id。因此运行上面的这段代码,其实就是通过一个字符串去获取对应图片文件的资源id。比如,当 type 的值为“icon”时,上面的代码会获得res.drawable-xxxx目录下的 icon.png 图片文件的资源id并返回给我们。我们通过资源 id 来把图片显示在ImageView中就是顺理成章的事了。
  2、使用Resources 类的 getIdentifier方法
  使用反射毕竟还是麻烦。如果同样的事情用 android.content.res.Resources 类来干,就是两句话而已:
  Resources res=getResources();
  return res.getIdentifier(type,"drawable",getPackageName());
  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进制值。

  

热心网友 时间:2022-04-20 13:26

Android中的R.java文件是android自动生成的资源文件,因为java是不能直接访问xml文件的,但是android的布局是在xml文件中写的,所以需要借助R.java文件来获取布局文件中的android组件。

  在布局文件中使用android:id="@+id/testid"来唯一标识这个组件id是不能重名的。
  在java文件中可以通过(ImageView)findViewById(R.id.testid);来获取id,也就是相当于实例化吧。
  findViewById是我们获取layout中各种View 对象比如按钮、标签、ListView和ImageView的便利方法。
  资源id在Android中是如此重要,因此我们只要获得了资源id,即可获得资源。因为某些情况下,我们不能使用某个常量作为资源id(因为我们想用一个变量代替它),所以只能采用两种方式动态获取资源id
  下面是动态获取id的2中方法
  
  1、反射
  java的反射是如此强大,以至于我们在走投无路时总是想起它。我们来看一段代码:
  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;
  }
  type是一个变量,他的可能值会是“close”、“edit”、“icon”等。我们通过java的反射类Field 去访问 R.drawable 类下面的某个字段。实际上,我们知道在R.drawable 下的字段就是 res.drawable-xxxx 目录下的图片文件的资源id。因此运行上面的这段代码,其实就是通过一个字符串去获取对应图片文件的资源id。比如,当 type 的值为“icon”时,上面的代码会获得res.drawable-xxxx目录下的 icon.png 图片文件的资源id并返回给我们。我们通过资源 id 来把图片显示在ImageView中就是顺理成章的事了。
  2、使用Resources 类的 getIdentifier方法
  使用反射毕竟还是麻烦。如果同样的事情用 android.content.res.Resources 类来干,就是两句话而已:
  Resources res=getResources();
  return res.getIdentifier(type,"drawable",getPackageName());
  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进制值。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请问信用卡暂未批准是什么意思 短发搭配什么帽子能吸睛?get下文各种短发的搭配攻略 入门智能机vivoy200t怎么样? 直短发配什么帽子好看 老狗狗为什么总低头 脚跟骨裂做了手术还装了钢板,请问要多长时间才能恢复。 脚跟粉碎性骨折术后多久能走路 脚跟骨折多久可以正常走路 如图,AD是∠BAC的平分线,点E在AB上,且AE=AC,EF ∥ BC交AC于点F.试说明... 如图,AD是角BAC的平分线,点E在AB上,且AE=AC,EF//BC交AC于点F.求证:EC... 医院运维安全管理使用堡垒机可以么? 请问FMX125是什么管,参数是多少,能用什么管代替,是用在开关电源上的. FMX12 萨基姆报价 堡垒机最大能支持几个跳板服务器 行云管家怎么样?可靠吗? 飞达音响fidekfmx_124s 说明书 运维人员如何搭建堡垒机(跳板机)? fmx12s坏了在外表能看出来吗 运维安全审计系统与堡垒机啥关系? 有关安全运维之堡垒机知识的书籍 我有个三菱FX1S电源板坏了 strg6551用什么型号代换 fmx12s击穿用什么原件代换 系统上线后,运维团队一团乱麻,请问有什么好的机制能够规范运维行为? 开关电源中,fmx12s的测量方法,想知道是否坏了 新浪微博企业认证需要什么资料 FMX12S是什么管子,是开关电源S-100-24中的管子。 运维堡垒机哪家好? 腾讯微博企业、机构团体认证怎么操作? 读了荷兰的花这篇文章后你有什么感想? 荷兰为啥有人读第四声 荷兰的名花有哪些 堡垒机现在一般支持哪些系统的运维操作审计? simco fmx-003的SIMCO FMX-003参数 除了碉堡堡垒机之外,还有哪个厂商有软件堡垒机? 飞达音响 FMX-03K 应该配多少寸的音箱 堡垒机的作用有哪些,堡垒机价格是多少,堡垒机厂家有哪些? 求 飞达Fidek FMX-12G2调音台 的中文说明书. XMCS11107175147fe3 从商业银行职能看,当前我国商业银行盈利的主要业务有哪些 ()最能反映商业银行的信用中介功能 A存贷业务B信 商业银行是不是中介 喷淋头清洗方法 怎么清理喷淋头 如何清洗喷淋头的油漆 如何清洗消防喷淋头上的油漆? 我家智能马桶的清洗喷头伸出后回不到原位是咋回事? 喷淋喷头堵了。怎么清理里面!!!急 喷淋是所用的螺旋喷头一直堵怎么办 通过式喷淋清洗机,为什么前后清洗,漂洗喷淋泵要一样那? 消防喷淋头如何日常维护及测试 工地消防单位安装自动喷淋管网时候就把喷头安上了 那书上说应该试压清洗什么的不是应该后安装喷头马