このブログを検索

2011年9月19日月曜日

[iAppli][Doja][Star]ドコモアプリの画面サイズ

アプリストアでアプリを販売する際に、
意外と面倒なのが画面サイズを考慮することです。

対応機種を選ぶ際に、どの機種が、どのサイズだから許可できる~~だとか、えーいもうって感じです。

ちなみに画面サイズは こちら 参照でどの機種がどんなサイズか~ってのが一応わかります。

アプリ登録時に、機種のチェックボックスをちまちま押していくところは、楽になりませんが、
どの機種が、この解像度を満たしているか、みたいなことはExcelでうまいことできるんじゃないかなぁと。

とりあえず、ドコモページから表ぶっこぬいて、 こちら にまとめてみました。
フィルタで、好きな画面サイズだけ選べば、あとは機種をチェックするだけかな?

まぁ使えるか微妙だけど、ご自由にどうぞ。

2011年2月3日木曜日

Java3d での動的な物体の追加と削除 ~その2~

はい。
アクセス解析を見ていると、この記事に引っかかってくる人がやたら多いので
前回の記事をわかりやすくしてみました。
(前回のやつわかりにくいよねー)


はい。
何をするかっていうと
プログラム内でたとえばスイッチを押したときとか、
何か条件が起きた時にオブジェクトを追加表示、削除を行いたいということです。

ということでおさらい。

重要なことは2つ
追加される側のBranchGroupでは
branchG0.setCapability(BranchGroup.ALLOW_CHILDREN_EXTEND);
branchG0.setCapability(BranchGroup.ALLOW_CHILDREN_WRITE);
を行うこと。
追加する側では(削除したいならば)
branchG0.setCapability(BranchGroup.ALLOW_DETACH);
と記述します。

そして追加する際は追加するBranchGroupに対し
branch.addChild(branchG0);
とする。(追加できるのはBranchGroupのみだった気がします)

削除する際にはすでに追加したBranchGroup(グローバル化するなどしてとっておく)に対し
branchG0.detach();
とする。

とそんだけなんです。


ということで珍しくサンプルソース。
AddTest.java

このソースでは元のBranchGroupと、追加するBranchGroupを
branchとbranchArに保存しておき
Threadで適当に追加削除を繰り替えすプログラム。

チェックする点は元のBranchGroup作成時と
追加するBranchGroup作成時。
createSceneGraph()
getObject()
に注目である。

2011年1月12日水曜日

[Doja]iアプリ開発でArrayList

Dojaでiアプリを開発しているとArrayListが使えないことに気付く。
(あれ?つかえたっけ?)

そこでそれに代わるのがVectorである。

ArrayListはまぁJavaでよく使われるリストです。
リストとは 簡単に追加削除ができる可変長配列的な?
普通の配列は最初に定義したサイズになり、後々中身が多かったり少なかったり、はたまた追加したかったり削除したかったりすると、サイズを定義しなおしてコピーしてと手間がかかるがリストならそれを自動でやってくれちゃうってことですな。
そんな便利なArrayListがDojaでは使えないので代わりに同じような使い方ができるVectorを使います。
VectorとArrayListの違いは型を固定しないことで、ArrayList<クラス名>と型を指定せずなんでも突っ込めちゃう代わりに取り出すときはキャストしないといけません。





簡単に使い方紹介


Vector vector = new Vector();
String str = {"test1","test2","test3","test4","test5","test6"};
for(int i=0;i<str.length;i++)
        vec.addElement(str[i]);
for(int i=0;i<vector.size();i++)
        System.out.println( i + "番目のVectorは" + (String)vector.elementAt(i));

とするとVectorにStringが配列のようにたくさん入っている感じになるわけです。
注意点は最後の行の(String)vector.elementAt(i)で、ちゃんとキャストしないとだめです。
とくにインスタンスをぶち込んだ場合は
((クラス名)vector.elementAt(i))  としないと内部メソッド?が使えません。
たとえばStringのcharAt(i)を使いたいときは
(String)vector.elementAt(i).charAt(i); ではなく
((String)vector.elementAt(i)).charAt(i); にしないといけません。

なんとまぁ括弧の多いことめんどくさいこと。
まぁでもVector便利なんで使ってくださいVector