gpt4 book ai didi

Android Studio - setImageDrawable 是如何工作的?

转载 作者:太空宇宙 更新时间:2023-11-03 11:33:04 24 4
gpt4 key购买 nike

我一直在尝试自学如何使用 android studio,但遇到了障碍,这段代码有什么问题吗?它不会让我使用 draw-able 设置为图像吗?

    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);
}
});
}

最佳答案

你需要知道什么是参数以及setImageDrawablesetImageResource的区别。

不同的方法需要不同的参数。我指的是不同类型 的参数。在这种情况下,setImageDrawable 需要一个 Drawable 类型的参数,但您给它的是一个 int 类型的参数。所以这就是它不起作用的原因。

不知道你知不知道。 Android 中的所有资源 ID(即 R.xxx.xxx 东西)都是整数!因此,当您在实际需要 Drawable 时尝试传递整数时,它当然会失败。

你需要的是要么

1) 找到一个接受整数作为参数的方法。或者;

2) 使用资源id获取Drawable对象。

对于1),可以使用setImageResource方法。只需将单词 Drawable 替换为 Resource 并且不要更改任何其他内容!

如果您更喜欢 2),您可以使用此方法使用资源 ID 获取可绘制对象。

Drawable myDrawable = getResources().getDrawable(<insert your id here>);

然后你可以传递myDrawable作为参数:

p.setImageDrawable(myDrawable);

关于Android Studio - setImageDrawable 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34700388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com