初めまして、androidアプリを今回初めて作成している者です。
私は今「android対応 マスコットアプリ プログラミング」という本を見ながらアプリを作成しています。
この書籍の中にある キャラクターの表示 という項目までは何とかたどり着けたのですが、キャラクター表示のためのプログラムを記入し、いざ実際エミュレーターで実行してみるとLogCatに「java.long.OUtOfMemoryError: bitmap size exceeds VM budget」やその他のエラーが表示され強制終了されます。
以下プログラムです↓
............................................................
package my.name;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;
public class Bit2Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new BitmapView(this));
}
class BitmapView extends View {
Bitmap bitmap[] =new Bitmap[3];
public BitmapView(Context c) {
super(c);
Resources r=c. getResources();
bitmap[0]=BitmapFactory.decodeResource(
r, R.drawable.画像ファイル1);
bitmap[1]=BitmapFactory.decodeResource(
r, R.drawable.画像ファイル2);
bitmap[2]=BitmapFactory.decodeResource(
r, R.drawable.画像ファイル3);
}
@Override
protected void onDraw(Canvas c) {
c.drawColor(Color.WHITE);
Paint p=new Paint();
for (int i=0; i<bitmap.length; i++) {
c.drawBitmap(bitmap, (
c.getWidth() -bitmap.getWidth())/2, 0, p);
}
}
}
}
....................................................
書籍にある通り、画像サイズは1200 x 1600 の透過PNGです。
調べてみると画像サイズが大きいのはわかったのですが、どのように対処するべきかわかりませんでした…。
このプログラムの中で画像サイズを小さくするにはどのように記述すればよいでしょうか?
ご指導いただけると幸いです。
長文になりましたがよろしくお願いします。
androidアプリ開発 OutOfMemory
Re: androidアプリ開発 OutOfMemory
プログラムの中で画像サイズを小さくするのは、あまり意味がないのではないでしょうか?
GIMPなどの画像編集ソフトで、事前にリサイズしてみてください。
GIMPなどの画像編集ソフトで、事前にリサイズしてみてください。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
- bitter_fox
- 記事: 607
- 登録日時: 13年前
- 住所: 大阪府
Re: androidアプリ開発 OutOfMemory
http://vacaposi.blogspot.jp/2011/09/09- ... e2168.html
が参考になると思います。
あとは、メモリリークが起きていないかの確認もするとよいと思います。
が参考になると思います。
あとは、メモリリークが起きていないかの確認もするとよいと思います。
Re: androidアプリ開発 OutOfMemory
返信が遅くなってしまい、申し訳ないです。
ご回答くださり、ありがとうございました!
お二人から頂いたご意見を参考に再度とりかかっていきたいと思います。
また質問させていただくかと思いますが、ご縁がありましたらぜひともよろしくお願いします^^*
ご回答くださり、ありがとうございました!
お二人から頂いたご意見を参考に再度とりかかっていきたいと思います。
また質問させていただくかと思いますが、ご縁がありましたらぜひともよろしくお願いします^^*
Re: androidアプリ開発 OutOfMemory
私も現在この書籍を使って勉強しています。
特にエミュレーターでのOOMが多いです。
このプログラムは第五章のものだと思いますが、
第六章に入ってからはいよいよ実機でもOOMが起こるようになりました。
プログラム上で小さくしても駄目みたいでした。
上記のプログラムではアプリ起動時に取得しているらしいので、エラーが起きやすいようです。
第五章の三番目のプログラムはプログラム呼び出し時に画像を取得するので、
まだエラーが起きにくいようです。(横にしたときとか)
メモリアナライザを使ってみてもそこまでメモリを使っているようには見えません。
Androidってこんなものなのかなぁと思ったりもしてます。
私のほうでも調査してみますが、
何か分かったらご連絡ください。
http://harapeko.wktk.so/
http://android.wktk.so/
特にエミュレーターでのOOMが多いです。
このプログラムは第五章のものだと思いますが、
第六章に入ってからはいよいよ実機でもOOMが起こるようになりました。
プログラム上で小さくしても駄目みたいでした。
上記のプログラムではアプリ起動時に取得しているらしいので、エラーが起きやすいようです。
第五章の三番目のプログラムはプログラム呼び出し時に画像を取得するので、
まだエラーが起きにくいようです。(横にしたときとか)
メモリアナライザを使ってみてもそこまでメモリを使っているようには見えません。
Androidってこんなものなのかなぁと思ったりもしてます。
私のほうでも調査してみますが、
何か分かったらご連絡ください。
http://harapeko.wktk.so/
http://android.wktk.so/