如何从属性引用中检索drawable

我在我的应用程序中定义了主题和风格。 图标(可绘制)使用style文件中的引用来定义

<attr name="myicon" format="reference" /> 

和风格一样

 <style name="CustomTheme" parent="android:Theme.Holo"> <item name="myicon">@drawable/ajout_produit_light</item> 

我需要以编程方式检索drawable以在对话框片段中使用良好的图像。 如果我喜欢

 mydialog.setIcon(R.style.myicon); 

我得到一个ID等于0,所以没有图像

我试图使用类似的东西

 int[] attrs = new int[] { R.drawable.myicon}; TypedArray ta = getActivity().getApplication().getTheme().obtainStyledAttributes(attrs); Drawable mydrawable = ta.getDrawable(0); mTxtTitre.setCompoundDrawables(mydrawable, null, null, null); 

我尝试了不同的东西,但结果始终为0或空值: – /

我怎么能这样做?

Solutions Collecting From Web of "如何从属性引用中检索drawable"

我find了在主题和attrs.xml android中定义的Access资源的解决scheme

 TypedArray a = getTheme().obtainStyledAttributes(R.style.AppTheme, new int[] {R.attr.homeIcon}); int attributeResourceId = a.getResourceId(0, 0); Drawable drawable = getResources().getDrawable(attributeResourceId); 

看起来好像你正在尝试使用资源来设置你的myDialog的图标,并试图通过R.style来访问它,但是你的其他代码段让我相信你的资源位于R.drawable

考虑到这一点,你应该能够得到你想要的效果与myDialog.setIcon(R.drawable.myicon);