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