- ベストアンサー
Flash馬鹿のJava連番画像ファイルの読込について
- Flash馬鹿のJava初心者が連番画像ファイルを一気に読み込む方法について質問しています。
- Javaのコード例やAndroidのシミュレータの問題についても言及しています。
- 連番の画像リソースの指定方法についての助言を求めています。
- みんなの回答 (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で宣言したときの違いから調べてみます・・・というかもっと基礎からやるべきなんでしょうけど・・・ このたびは初歩的な質問にも関わらずお答えいただき、ありがとうございました。