ImageButton Soundboard приложение за Android

Тъкмо започвам с първата си звукова дъска. По принцип това е, което имам досега (освен че имам 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;

public class main extends 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();

        }
    });

}

}


person Colby    schedule 04.04.2011    source източник
comment
Пренаписах приложението, използвайки предложението на Матю. Използването на карта работи страхотно! Но сега не знам как да поставя на пауза и да възобновя MediaPlayer, ако приложението отиде на заден план. Може ли някой да помогне?   -  person Colby    schedule 05.04.2011


Отговори (1)


С четиридесет бутона трябва да организирате това да се случва в цикъл.

Въпреки че има още по-хитри начини да направите това, можете да започнете с изграждането на 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 екземпляри.

person Matthew Willis    schedule 04.04.2011
comment
Благодаря ви, наистина оценявам вашата помощ. Сега се опитвам да го пренапиша. Има ли други трикове с картографиране, на които начинаещ като мен може да се заби? - person Colby; 05.04.2011