Android 如何使用RunNuithRead更改ImageView

Android 如何使用RunNuithRead更改ImageView,android,Android,每次声音结束时,我都试图更改imageview,所以我使用了RunNuithread,但该图像仅显示循环结束时的最后一张图像,而我将其放在代码下方以更改图像 public class PrincipalActivity extends ClassePai { MediaPlayer avemarias,misterios; ImageView imagem ; @Override protected void onCreate(Bundle savedInstanceState) {

每次声音结束时,我都试图更改imageview,所以我使用了RunNuithread,但该图像仅显示循环结束时的最后一张图像,而我将其放在代码下方以更改图像

public class PrincipalActivity extends ClassePai {

MediaPlayer avemarias,misterios;
ImageView imagem ;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_principal);

    avemarias = MediaPlayer.create(this, R.raw.teste);

    imagem = (ImageView) findViewById(id.imageViewGoz);



    while(contador<3){

        mudaImagem(imagem,avemarias,misterios);

    }

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_principal, menu);
    return true;
}
}这不起作用:

imagem.setImageResource(
        com.willamydotcom.osantoterco.R.drawable.goz_quar + contador);
您试图更改ImageView的图像资源,但是您将资源名称与代码中实际的资源ID混淆

看看你的日志:Android找不到这些资源,你可能会因为堆栈跟踪而崩溃

必须编写switch语句才能正确处理此问题:

switch(contador) {
case 0:
    imagem.setImageResource(
            com.willamydotcom.osantoterco.R.drawable.goz_quar0);
    break;
case 1:
    imagem.setImageResource(
            com.willamydotcom.osantoterco.R.drawable.goz_quar1);
    break;
case 2:
    imagem.setImageResource(
            com.willamydotcom.osantoterco.R.drawable.goz_quar2);
    break;
}

您的代码还有其他问题:从
onCreate()
执行
mudaimage()
,然后执行
runOnUiThread()
没有任何意义。

您的代码有太多错误,很难知道从哪里开始。您不应该在onCreate()内循环;活动方法是从UI线程调用的,因此您不需要使用runOnUiThread()-它是在单独的线程想要更新UI时使用的-如果您想安排将来发生的事情,有其他方法可以做到这一点;为什么康塔多声明为静态?
switch(contador) {
case 0:
    imagem.setImageResource(
            com.willamydotcom.osantoterco.R.drawable.goz_quar0);
    break;
case 1:
    imagem.setImageResource(
            com.willamydotcom.osantoterco.R.drawable.goz_quar1);
    break;
case 2:
    imagem.setImageResource(
            com.willamydotcom.osantoterco.R.drawable.goz_quar2);
    break;
}