我创建了一个简单的android项目,它将显示存储在数组中的各种图像,并通过滑动图像来改变音频。 这是我的代码
package com.example.arab;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager viewPager = (ViewPager)findViewById(R.id.view_pager);
ImagePagerAdapter adapter = new ImagePagerAdapter();
viewPager.setAdapter(adapter);
}
private class ImagePagerAdapter extends PagerAdapter {
private int[] mImages = new int[] {R.drawable.alif,R.drawable.baa,R.drawable.taa,R.drawable.saa,R.drawable.gim,R.drawable.haa,
R.drawable.kha,R.drawable.dal,R.drawable.zal,R.drawable.raa,R.drawable.jaa,R.drawable.seen,
R.drawable.shin,R.drawable.soad,R.drawable.duad,R.drawable.tua,R.drawable.jua,R.drawable.aiin,
R.drawable.guain,R.drawable.faa,R.drawable.kaff,R.drawable.kuff,R.drawable.lum,R.drawable.mim,
R.drawable.nun,R.drawable.wow,R.drawable.haasmall,R.drawable.hamza,R.drawable.eaa};
private int[] mAudio= new int[]{R.raw.alif,R.raw.baa,R.raw.taa,R.raw.saa,R.raw.gim,R.raw.haa,R.raw.kha,R.raw.dal,R.raw.zal,
R.raw.raa,R.raw.jaa,R.raw.seen,R.raw.shin,R.raw.soad,R.raw.duad,R.raw.tua,R.raw.jua,R.raw.aiin,
R.raw.guain,R.raw.faa,R.raw.kaff,R.raw.kuff,R.raw.lum,R.raw.mim,R.raw.nun,R.raw.wow,R.raw.haa_small,
R.raw.hamza,R.raw.eaa};
@Override
public int getCount() {
return mImages.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Context context = MainActivity.this;
ImageView imageView = new ImageView(context);
int padding =context.getResources().
getDimensionPixelSize(R.dimen.activity_vertical_margin);
imageView.setPadding(padding, padding, padding, padding);
imageView.setScaleType(ImageView.ScaleType.CENTER);
imageView.setImageResource(mImages[position]);
((ViewPager) container).addView(imageView, 0);
//for Sound
if (mp != null) {
mp.reset();
mp.release();
}
//the audio files are running here but not in sync with image
mp = MediaPlayer.create(MainActivity.this,mAudio[position]);
mp.start();
return imageView;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
((ViewPager) container).removeView((ImageView) object);
}
}
}
这里int [] mAudio是我保存所有音频文件的数组。现在我想根据int [] mImages数组中的图像播放声音并更改音频。
答案 0 :(得分:0)
修改强>
完成
后调用图片更改功能mp.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mp.release(); //here you should call your picture changed function or event what ever you have for pictures}
使用循环u可以根据您的图像更改音频。 例如,如果您的图像显然已更改,您的索引也将更改,也会使用相同的音频索引 像这样
for (int i=0;i<mImages .length;i++)
mImages [i];
mp = MediaPlayer.create(FallAnimationActivity.this,
mAudio [i]);
mp.start();