スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



MIDP -> Android移植 その4

リソースの扱い
MIDPとAndroidで大きな違いはリソースの扱いが全然違うということ。

MIDPはjarにパッケージ化したときはルートフォルダに全部展開され,
getClass().getResourceAsStream("パス")で取得できました。

Androidではリソースのファイルタイプ毎にフォルダが階層されていて,
リソースのタイプごとに異なるメソッドでアクセスする。

例えばtxtファイルのような生データのときは以下のメソッドでInputStreamを取得します。
Resources.openRawResource()

これで困ったことが,txtファイル内に次のリソース名(例えば a.txtの中にb.txtって書いてあるとき)が書いてあるとき,
MIDPでは読み込んだ文字列をそのままパスとして使えました。

AndroidではリソースIDに置き換える必要があり,
単純にパスを渡すだけでは取得できません。

そういうときは以下のメソッドでIDを取得するそうです。
Resources. getIdentifier()

ふむ...一手間かかるね〜。


enumの扱いにまだ迷う
連番振るの面倒なのと,人間が手で振ってたら間違った値を振ってしまうので
前作ではプリプロセッサを使用してenumを強引にしようしてました。
(J2MEではenumはサポートしていない)

AndroidではJava5SEベースになったのでenumがサポートされたので置き換えてみようと思ったのですが...。

enumのメンバは配列のインデックスに直接使えないんですよね。
ordinal()メソッドを呼んで強引に使ってますが...。

それにenumはオブジェクトだからnull値もありえるということで,
チェックの方法も変わってくるし...。

前回も書いたようにJavaでは初期値を与えることができないので,
-1から始めるenumを作れないのも難点。

かといって160個くらいの要素を持つenumを
全部static fianl intに置き換えるのも...。

Javaではenumを使ったときは配列を使うのではなくて
連想配列のようなもので対応しろってことなのだろう。

ふむ〜今日は疲れモードで愚痴りました。
それではまた明日〜w
関連記事
スポンサーサイト

テーマ : ゲーム開発
ジャンル : コンピュータ




コメントの投稿

非公開コメント

アクセス
あなたは
キーワード
カテゴリー
最近の記事
リンク
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

WEB検索
Google

RSSフィード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。