您好我有一个可绘制的myshape.xml,它包含一个<shape>
,我无法将android:id设置为形状。
在我的代码中,我想使用
为此文件设置视图的背景 catAll.setBackgroundDrawable(getResources().getDrawable(R.id......???));
其中myshape.xml没有显示在我的R文件中,因为它没有id。我无法将id设置为object。
在我的XML中,我只需输入可绘制的资源名称即可设置形状。但我需要以编程方式执行此操作。
答案 0 :(得分:38)
你自己不需要得到可绘制的。请改用:
catAll.setBackgroundResource(R.drawable.myshape);
为了将来参考,如果你做希望获得drawable,请记住,drawables存在于 R.drawable 命名空间中。所以你的代码将成为:
getResources().getDrawable(R.drawable.myshape);
这类似于您在XML中所做的事情:
@drawable/myshape
而不是
@id/myshape
答案 1 :(得分:0)
这个问题真的很老,但谷歌首先点击了对该线程的引用。
所以 getDrawable(id)
已被弃用。
简短的解决方案(kotlin)
yourView.background = ContextCompat.getDrawable(context, R.drawable.your_ressource_id)