循环图像和音频阵列

时间:2014-04-03 10:17:54

标签: android audio

我正在制作一款有许多图像和音频的应用。我想要做的就是为这些图像和音频应用一个循环,以便在显示图像时播放音频,即image1 = audio1,image2 = audio2。我的应用程序中有下一个和上一个按钮。接下来将显示下一个图像和音频,之前将显示前一个。我应该使用for循环吗?或转换案例?我试过这段代码。但是当图像和音频阵列结束时,我想重新开始。请帮忙。

public class MainActivity extends Activity {


int i=1;
MediaPlayer mediaplayer;
int image = 0;
int sound ;
int [] sounds;
int [] audio;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    sounds = new int [] {
            R.raw.audio_one, R.raw.audio_two, R.raw.audio_three, R.raw.audio_four
    };
    mediaplayer = MediaPlayer.create(this, sounds[0]);
    mediaplayer.start();


    final int [] images = {
            R.drawable.num1, R.drawable.num2, R.drawable.num3, R.drawable.num4
    };

    ImageButton next = (ImageButton)findViewById(R.id.imageButton1);
    ImageButton prev = (ImageButton)findViewById(R.id.imageButton2);

    final ImageView img1 = (ImageView)findViewById(R.id.imageView2);
    final ImageView img2 = (ImageView)findViewById(R.id.imageView3);

    next.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if(image==3){

            }
            else {
                image++;
            }

            i=image;



            audio(i);
            mediaplayer.start();

            img1.setImageResource(images[image]);

        }

    });

    prev.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if (image<=0){
                img1.setImageResource(R.drawable.num1);



            }
            else
            {
                image--;

            }

            i=image;

            audio(i);

            mediaplayer.start();

            img1.setImageResource(images[image]);
        }
    });
}

public void audio(int a)
{


    mediaplayer = MediaPlayer.create(this, sounds[a]);

    return;
}
}

1 个答案:

答案 0 :(得分:0)

使用以下代码......

next.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if(image== images.lenght()-1){
                   image=0;
            }
            else {
                image++;
            }

            i=image;



            audio(i);
            mediaplayer.start();

            img1.setImageResource(images[image]);

        }

    });

    prev.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            if (image==0){

                img1.setImageResource(R.drawable.num1);



            }
            else
            {
                image--;

            }

            i=image;

            audio(i);

            mediaplayer.start();

            img1.setImageResource(images[image]);
        }
    });

}