我需要在声音结束时更改 ImageView,但是当我尝试使用线程使用它来卡住尖叫声时,应用程序将关闭;

mp = MediaPlayer.create(this, R.raw.ave_maria);
    mp.start();
    im = (ImageView) findViewById(R.id.imag1);

    Thread thread = new Thread() {
        public void run() {

            while (mp.isPlaying()) {

            }
            im.setImageResource(R.drawable.primeiro_misterio_gozoso07);
        }
    };
    thread.start();

最佳答案

您应该将代码与线程 UI 同步。

mp = MediaPlayer.create(this, R.raw.ave_maria);
    mp.start();
    im = (ImageView) findViewById(R.id.imag1);

    Thread thread = new Thread() {
        public void run() {

            while (mp.isPlaying()) {

            }
            //YouActivity
            YouActivity.this.runOnUiThread(new Runnable() {

            public void run() {
               im.setImageResource(R.drawable.primeiro_misterio_gozoso07);

            }
    });

        }
    };
    thread.start();

关于android - 当声音以线程结束时如何更改 ImageView ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13532479/

10-14 17:26