在Android Studio中通过数组显示图像

时间:2017-03-14 01:44:34

标签: java android

我正在尝试重新安装测验应用程序,而不是显示文本问题,将显示图像(Ishihara幻灯片是具体的)。 作为参考,这是原始测验应用程序的屏幕截图: Forgive the ugly yellow

当用户选择true或false按钮时,会显示结果的Toast。直截了当,前一个/下一个按钮循环显示问题。问题存储如下:

final QuestionAndAnswer[] mQandA = new QuestionAndAnswer[]{
 /*1*/  new QuestionAndAnswer(R.string.question_northAmerica, true),
 /*2*/  new QuestionAndAnswer(R.string.question_antarctica, false),
 /*3*/  new QuestionAndAnswer(R.string.question_canada, false),
 /*4*/  new QuestionAndAnswer(R.string.question_madagascar, true),
 /*5*/ new QuestionAndAnswer(R.string.question_wonders, false)
};

我认为将new QuestionAndAnswer指向R.drawable.imagename可以实现此目的,而只是将图像的位置显示为文本。 并将其更改为new ImageView(R.drawable.imagename, true)会引发错误:

  

ImageView中的ImageView(android.content.Context,android.util.AttributeSet)无法应用于(int,boolean)

对不起,我对Android仍然很陌生但是你现在可能已经把它放在了一起,我是一名学生,除此之外别无选择。

2 个答案:

答案 0 :(得分:3)

如果你在布局xml上有这样的东西

<RelativeLayout ...
...
      <TextView android:id="@+id/text_view_id" ... />

...
</RelativeLayout>

您需要将其更改为

<RelativeLayout ...
...
      <ImageView android:id="@+id/image_view_id" ... />

...
</RelativeLayout>

然后在你的活动课上,也许你有类似下面的内容

TextView textView;

public void onCreate() {

    textView = (TextView) findViewById(R.id.text_view_id);

    ....

    textView.setText(mQandA[i].question)
}

mQandA [i]。问题是您的问题资源a.k.a R.string.question_northAmerica 将其更改为

ImageView imageView;

public void onCreate() {

     imageView = (ImageView) findViewById(R.id.image_view_id);

     ...

     imageView.setImageResource(mQandA[i].question)

}

mQandA [i] .question 是您的图片资源a.k.a R.drawable.imagename

编辑1

改变

的每一个外观
textView.setText(mQandA[i].question)

imageView.setImageResource(mQandA[i].question)

对方

答案 1 :(得分:0)

您必须在ImageView中显示问题。

这意味着您不能将其指向drawable,您必须编辑XML布局文件,并更改程序的其他许多部分。
这包括显示问题的实际代码。

您可以编辑您的问题并包含实际的Java和XML文件。