androidアプリ開発 OutOfMemory
Posted: 2012年5月10日(木) 22:33
初めまして、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対応 マスコットアプリ プログラミング」という本を見ながらアプリを作成しています。
この書籍の中にある キャラクターの表示 という項目までは何とかたどり着けたのですが、キャラクター表示のためのプログラムを記入し、いざ実際エミュレーターで実行してみると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です。
調べてみると画像サイズが大きいのはわかったのですが、どのように対処するべきかわかりませんでした…。
このプログラムの中で画像サイズを小さくするにはどのように記述すればよいでしょうか?
ご指導いただけると幸いです。
長文になりましたがよろしくお願いします。