
【Flash馬鹿のJava】連番画像ファイルの読込について
対象バージョン:J2SE1.6 / Android1.6
はじめましてFlash馬鹿です。Java初心者です。
連番画像ファイルを一気に読み込みたいのですが、方法が分かりません。
Flashでいうところの
for(i=1;i<100;i++){
this["loadmc" + i].loadMovie("image" + i + "png")
}
みたいなことがしたいです。
private Bitmap image1;
private Bitmap image2;
private Bitmap image3;
image1 = BitmapFactory.decodeResource(r, R.drawable.image1);
image2 = BitmapFactory.decodeResource(r, R.drawable.image2);
image3 = BitmapFactory.decodeResource(r, R.drawable.image3);
だといけますが
private ArrayList<Bitmap> image;
image.add(BitmapFactory.decodeResource(r, R.drawable.image1));
image.add(BitmapFactory.decodeResource(r, R.drawable.image2));
image.add(BitmapFactory.decodeResource(r, R.drawable.image3));
にするとAndroid1.6のシミュレータが落ちます。
また、連番の画像リソースを指定する方法("image" + i + "png")も分かりませんので
教えていただけると幸いです。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
まず、Javaでは、オブジェクトを入れる変数には、その実体ではなく、実体への参照になっている、ということに注意してください。
> private Bitmap image1;
ではimage1という「矢印」が作られるだけ、その先は何も示していません(正確には、nullを示していますが)
> image1 = BitmapFactory.decodeResource(r, R.drawable.image1);
ここで、BitmapFactory~て作られたオブジェクトとimage1の矢印が結びつきます。
同様に
> private ArrayList<Bitmap> image;
もimageという矢印が出来るだけです。 ArrayListは存在していません。
その状態で
>image.add(BitmapFactory.decodeResource(r, R.drawable.image1));
とやっても、存在しないArrayListにaddなどできないので、エラーになります。実際には例外が発生し、それが捕捉されないままでシミュレータの終了まで行ってしまうのでしょう。
ArrayListの使用例を参考書等で確認すれば、new でArrayListのインスタンスを作成しているのがわかると思います。
private ArrayList<Bitmap> image = new ArrayList<Bitmap> () ;
> 連番の画像リソースを指定する方法("image" + i + ".png")
Action Script等では、「数値」と「数字の入った文字列」の区別が曖昧で、上のように使うこともできますが、Javaなどでは、明確に区別しているので、上のようなことをする場合には、「数値」を「数字の入った文字列」に明示的に変換する必要があります。
例えば、こんな風に
"image" + Integer.toString(i) + ".png"
一気にやろうとしないで、面倒でも、基礎からやったほうがいいと思います。
他の言語の知識は、時に学習の邪魔になります。
非常に丁寧なご説明ありがとうございます。
なんとなく意味がわかってきたような気がします。
private List<Bitmap> image;
image = new ArrayList<Bitmap>();
image.add(BitmapFactory.decodeResource(r, R.drawable.image01));
image.add(BitmapFactory.decodeResource(r, R.drawable.image02));
image.add(BitmapFactory.decodeResource(r, R.drawable.image03));
とすることで意味もわからずなんとなく動いていたのですが、ひとまずListとArrayListで宣言したときの違いから調べてみます・・・というかもっと基礎からやるべきなんでしょうけど・・・
このたびは初歩的な質問にも関わらずお答えいただき、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
COMコンポーネントって何?
-
戻り値がクラスオブジェクト
-
オブジェクト名をforループ内で...
-
C#でフォームのオブジェクト名...
-
CoCreateInstanceでエラーになる。
-
ビジュアルC++でボタンの有...
-
0 == False はいいけど
-
パワーポイントのVBAでテキスト...
-
VBA 同じ名前のオブジェクトを...
-
Excelで =EMBED("Acrobat Docu...
-
サーブレットのクラス図について。
-
C++でのクラスオブジェクトの破棄
-
ワイルドカード<?>と型パラメー...
-
ASP.net 教えてください!!(...
-
Strutsでファイルアップロード
-
リアルタイムでグラフを作成
-
VBAでvlookup関数から、別シー...
-
複数のドキュメントテンプレー...
-
Listに格納されているオブジェ...
-
VBScriptで計算して出た値をク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントのVBAでテキスト...
-
Excelで =EMBED("Acrobat Docu...
-
EXCEL VBAにて動的にCheckBOXを...
-
サーブレットのクラス図について。
-
ビジュアルC++でボタンの有...
-
VBAのWindowオブジェクトとWork...
-
C#でフォームのオブジェクト名...
-
ワイルドカード<?>と型パラメー...
-
COMコンポーネントって何?
-
VBA 同じ名前のオブジェクトを...
-
CoCreateInstanceでエラーになる。
-
戻り値がクラスオブジェクト
-
CFileDialogでフォルダだけを選...
-
newは明示的にした方が良いのか?
-
【Java】入力した西暦→和暦に変...
-
Accessの連結・非連結オブジェ...
-
Object型からDouble型へのキャスト
-
ASP.net 教えてください!!(...
-
error C2712: オブジェクト ア...
-
オブジェクトレベルとメタレベル
おすすめ情報