このブログを検索

mediaplayerを作ってみる(11)-2

2010年12月13日月曜日

|
shuffleつけました。変更は・・・。
多すぎるので、また忍者ブログに置いときます。
http://sattva.asasvata.net/Entry/17/

12/14↑ちょっと修正しました。まあ、ね。

まあ、要点だけ。


//シャッフル。特定の番号をlistの先頭にする
private void shuffleMusicNumList(int num) {

//一番後ろに追加
musicNumList.add(musicNumList.get(num));

//元からあるのを削除
musicNumList.remove(num);

//1回は済んでるので、size()-2から始める。
for (int i = musicNumList.size()-2; i >= 0; i--) {

//詰め替えてないのからランダムに選択
int n = (int)(Math.random()*(i+1));

//追加と削除
musicNumList.add(musicNumList.get(n));
musicNumList.remove(n);
}
}

なんか、すごく見にくい。まあ、それはそれとして。

普通にCollections.shuffleを使わなかったのは、
shuffleButtonにonClickをつけたので、
shuffleButtonを押したときにかかってる曲をlistの先頭に
持っていっとこうかと。

そうでもしないと、同じ曲がすぐにかかったすることがあるので。
まあ、listViewで選択した時もshuffleしなおすので、
直前の曲がすぐにかかることは、避けられてないですが。

あと、Collections.sortを使ってないのは、まあ、なんとなく。
addNumListで、いけるので。せっかく作ったし。

あと、参考までにjavaのソースを。
0から9の入ったArrayListの5番目の要素(indexは4)を
先頭に持っていきます。その他はまあ、適当に。

import java.util.*;

public class RandomTest2 {
public static void main(String[] args) {
ArrayList<Integer> array1 = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
array1.add(i);
}
array1.add(array1.get(4));
array1.remove(4);
for (int i = array1.size()-2; i >= 0; i--) {
int n = (int)(Math.random()*(i+1));
array1.add(array1.get(n));
array1.remove(n);
}
System.out.println(array1);
}
}

まあ、一緒です。これを元にしたんで。

あと、↑にもありましたが、ArrayListをもう一本使うのも。
なんかおかしいですが、まあ、適当に作ったんで。

import java.util.*;

public class RandomTest {
public static void main(String[] args) {
ArrayList<Integer> array1 = new ArrayList<Integer>();
for (int i = 0; i < 10; i++) {
array1.add(i);
for (int j = 0; j < array1.size(); j++) {
ArrayList<Integer> array2 = new ArrayList<Integer>();
array2.add(array1.size()-1);
//array1.remove(array1.size()-1);
Collections.shuffle(array1);
for (Integer n : array1) {
array2.add(n);
}
//array1.clear();
System.out.println(array2);
}
}
}
}

意図したのとは違う動きをするのが、残念な感じ。
Collections.shuffleしたのを、新しいlistに追加。
無駄が多い。様な気がするので、不採用。

それと、onClickBackとonClickNextのとこは、
(1)なら、(1)だけコメントアウトを解除して
(2),(3)は、コメントアウトにしておくと、処理が変わります。
たぶん。まあ、あまり確認してませんが。3つとも。

後、なんとなくでもなく見た目の変更。
隙間を開けとかないとボタンが押しにくいので。
こんな↓感じ。

















checkboxは、前に作ったのに変更。
せっかく作ったし。

次は、まあ、いろいろと。適当に。

0 コメント:

コメントを投稿

 

Lorem

ページビューの合計