我一直在努力教自己如何使用Android工作室,但我遇到了障碍,这段代码有什么问题?它不会让我使用绘图设置为图像?
public void obama(){
Switch s = (Switch)findViewById(R.id.obamaswitch);
s.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImageView p = (ImageView)findViewById(R.id.obamahere);
p.setImageDrawable(R.drawable.brock);
}
});
}
Run Code Online (Sandbox Code Playgroud)
Swe*_*per 15
你需要知道什么是参数之间的差异setImageDrawable和setImageResource.
不同方法需要不同的参数.我的意思是不同类型的参数.在这种情况下,setImageDrawable需要一个类型的参数,Drawable但你给它一个类型的参数int.所以这就是为什么它不起作用.
我不知道你是否知道这件事.R.xxx.xxxAndroid中的所有资源ID(即thingy)都是整数!因此,当您尝试在实际需要时传递整数时Drawable,它当然无法执行此操作.
你需要的是两者
1)找到一个接受整数作为参数的方法.要么;
2)使用资源id获取Drawable对象.
对于1),您可以使用该setImageResource方法.只需替换单词Drawable,Resource不做任何改动!
如果您更喜欢2),则可以使用此方法使用资源ID获取drawable.
Drawable myDrawable = getResources().getDrawable(<insert your id here>);
Run Code Online (Sandbox Code Playgroud)
然后你可以传递myDrawable参数:
p.setImageDrawable(myDrawable);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16626 次 |
| 最近记录: |