我只是从我的第一个响板开始。基本上,这就是我到目前为止所拥有的(除了我有40个声音)。有没有人知道更好的方法呢?我得去赴个约会,但我会在今天晚些时候回来回复你。谢谢,能帮上忙的人。
打包com.soundboard.app;
导入android.app.Activity;导入android.content.Intent;导入android.media.MediaPlayer;
导入android.os.Bundle;导入android.view.View;导入android.widget.Button;导入android.widget.ImageButton;
公共类main扩展了Activity {
MediaPlayer sound1, sound2, sound3;
ImageButton button1, button2, button3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sound1 = MediaPlayer.create(this, R.raw.sound1);
button1 = (ImageButton) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
sound1.start();
}
});
squeak3 = MediaPlayer.create(this, R.raw.squeak3);
dogsqueak = (ImageButton) findViewById(R.id.dogsqueak);
dogsqueak.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
squeak3.start();
}
});
sound2 = MediaPlayer.create(this, R.raw.sound2);
button2 = (ImageButton) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
sound2.start();
}
});
sound3 = MediaPlayer.create(this, R.raw.sound3);
button3= (ImageButton) findViewById(R.id.button3);
button3.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
sound3.start();
}
});}
}
发布于 2011-04-05 03:49:49
有了40个按钮,你需要安排这在循环中发生。
尽管有更聪明的方法可以做到这一点,但您可以从构建Map开始
Map<Integer, Integer> map = new HashMap<Integer, Integer>>();
map.put(R.id.button1, R.raw.sound1);
map.put(R.id.button2, R.raw.sound2);
...然后迭代:
for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
final MediaPlayer sound = MediaPlayer.create(entry.getValue());
Button button = (ImageButton) findViewById(entry.getKey());
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
sound.start();
}
});
}这将使您体验到循环解决方案。您还需要考虑如何管理MediaPlayer实例。
https://stackoverflow.com/questions/5543361
复制相似问题