我正在创建一个包含不同菜肴的类,其属性是标题,难度,类型和时间。但我也想要一个在创建该类的对象时将显示的图像。如何将图像.png设置为类的属性?
代码如下:
public class Dish {
private String name;
private String time;
private String type;
private Whatevergoesinhere image;
private int difficulty;
public Dish(String name, String time, String type, Whatevergoesinhere image, int difficulty) {
this.name = name;
this.time = time;
this.type = type;
this.image = image;
this.difficulty= difficulty;
}
public String getName() {
return name;
}
public String getTime() {
return time;
}
public String getType() {
return type;
}
public Whatevergoesinhere getImage() {
return image;
}
public int getDifficulty() {
return difficulty;
}
public static final Dish[] dishes = {
new Dish("Judías verdes con patatas", "45 min.", "verduras", "R.id.ic_launcher_background.xml", )
}
}
我试过使用BufferedImage,但它在Android中不受支持。
请帮忙,如果你有任何想法,就告诉。
继续我的评论:">如果您从应用程序资源(res
文件夹(获取这些图像,那么您只需传递可绘制的 ID,该 ID 稍后将用于在ImageView
上设置图像资源。
为此,您需要将变量声明更改为以下内容image
:
import android.support.annotation.DrawableRes
// import androidx.annotation.DrawableRes: Use this import if you are using AndroidX dependencies
public class Dish {
...
@DrawableRes
private int image;
...
然后你还需要将构造函数和 getter 方法声明更改为以下形式:
public Dish(..., @DrawableRes int image, ...) {
...
this.image = image;
...
}
...
@DrawableRes
public int getImage() {
return image;
}
稍后,当使用此数据保存类时,您只需使用 ImageView.setImageResource 即可显示您拥有的图像。