通过单击Android中的“下一个”和“上一个”按钮更改阵列图像和音频

时间:2018-11-20 07:30:19

标签: java android android-studio

我正在Android上简化它,它具有5个图像和5个音频声音,我为它们两个创建了单独的数组。我想要当我单击下一个按钮时出现R.drawable.anp1图像并产生R.raw.q1声音,并且再次当我单击下一个按钮时出现R.drawable.anp2图像并产生R.raw.q2 sound。在这种情况下,我的图像阵列可以按照我的要求正常工作,但是问题是我的音频无法正常工作,我的下一个按钮音频工作正常,但是当我返回到上一个按钮时,它会首先产生下一个按钮声音,然后进入上一个。

我想要image1=sound1image2=sound2image3=sound3,但问题是当我单击“上一步”按钮时,其外观类似于image2=sound3image1=sound2

第二,另一个问题是,当一个循环完成时,它将所有声音静音,为什么?

如果您知道任何方法,任何if-else或Switch-case逻辑,请回复我,我们将不胜感激。这是我的代码:

public class Parandegan extends AppCompatActivity {

    private ImageView hImageViewPic;
    private Button iButton,gButton;
    MediaPlayer ourSong;
    private int currentImage = 0;
    public int currentAudio = 0;

    int[] images = { R.drawable.anp1, R.drawable.anp2, R.drawable.anp3, R.drawable.anp4, R.drawable.anp5 };
    int[] audios = { R.raw.q1, R.raw.q2, R.raw.q3, R.raw.q4, R.raw.q5 };

    @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_parandegan);
        hImageViewPic = findViewById(R.id.idImageViewPic);
        iButton = findViewById(R.id.bIleri);
        gButton = findViewById(R.id.bGeri);
        iButton.setOnClickListener(iButtonChangeImageListener);
        gButton.setOnClickListener(gButtonChangeImageListener); }


    View.OnClickListener iButtonChangeImageListener = new View.OnClickListener() {
        public void onClick(View v) {


                try {
                    currentImage++;
                    currentImage = currentImage % images.length;
                    hImageViewPic.setImageResource(images[currentImage]);
                    ourSong = MediaPlayer.create(Parandegan.this,audios[currentAudio]);
                    currentAudio++;
                    ourSong.start();
                }
                catch (Exception e)
                {

                }
} };



    View.OnClickListener gButtonChangeImageListener = new View.OnClickListener() {
        public void onClick(View v) {

                try {
                    currentImage--;
                    currentImage = (currentImage + images.length) % images.length;
                    hImageViewPic.setImageResource(images[currentImage]);
                    MediaPlayer.create(Parandegan.this,audios[currentAudio]);
                    currentAudio--;
                    ourSong.start();
                }
                catch (Exception e)
                {

                } 
} };



    protected void onPause() {
        super.onPause();
        ourSong.release();
        finish();
    }
}

0 个答案:

没有答案