你需要知道什么是参数之间的差异setImageDrawable
和setImageResource
.
不同方法需要不同的参数.我的意思是不同类型的参数.在这种情况下,setImageDrawable
需要一个类型的参数,Drawable
但你给它一个类型的参数int
.所以这就是为什么它不起作用.
我不知道你是否知道这件事.R.xxx.xxx
Android中的所有资源ID(即thingy)都是整数!因此,当您尝试在实际需要时传递整数时Drawable
,它当然无法执行此操作.
你需要的是两者
1)找到一个接受整数作为参数的方法.要么;
2)使用资源id获取Drawable
对象.
对于1),您可以使用该setImageResource
方法.只需替换单词Drawable
,Resource
不做任何改动!
如果您更喜欢2),则可以使用此方法使用资源ID获取drawable.
Drawable myDrawable = getResources().getDrawable();
然后你可以传递myDrawable
参数:
p.setImageDrawable(myDrawable);