안드로이드 개발 시작한지 사흘 된 초보입니다.
drawable에서 bitmap 변수로 이미지를 받고 화면에 올리려고 하는데, 파일이 많습니다.
현재는 일단 아래와 같이 작성하였습니다
BitmapDrawable bd2 = (BitmapDrawable)getDrawable(R.drawable.bg_2);
Bitmap image2 = bd2.getBitmap();
BitmapDrawable bd3 = (BitmapDrawable)getDrawable(R.drawable.bg_wave_1);
Bitmap image3 = bd3.getBitmap();
BitmapDrawable bd4 = (BitmapDrawable)getDrawable(R.drawable.bg_wave_2);
Bitmap image4 = bd4.getBitmap();
BitmapDrawable bd5 = (BitmapDrawable)getDrawable(R.drawable.bg_wave_3);
Bitmap image5 = bd5.getBitmap();
BitmapDrawable bd6 = (BitmapDrawable)getDrawable(R.drawable.bg_wave_4);
Bitmap image6 = bd6.getBitmap();
BitmapDrawable bd7 = (BitmapDrawable)getDrawable(R.drawable.bg_wave_5);
Bitmap image7 = bd7.getBitmap();
BitmapDrawable bd8 = (BitmapDrawable)getDrawable(R.drawable.bg_wave_6);
Bitmap image8 = bd8.getBitmap();
BitmapDrawable bd9 = (BitmapDrawable)getDrawable(R.drawable.bg_wave_7);
Bitmap image9 = bd9.getBitmap();
BitmapDrawable bd10 = (BitmapDrawable)getDrawable(R.drawable.bg_wave_8);
Bitmap image10 = bd10.getBitmap();
BitmapDrawable bd11 = (BitmapDrawable)getDrawable(R.drawable.image1_nor);
Bitmap image11 = bd11.getBitmap();
...
canvas.drawBitmap(image1, new Rect(0,0,image1.getWidth(),image1.getHeight()), new Rect(0,0,180,canH), null);
canvas.drawBitmap(image2, new Rect(0,0,image2.getWidth(),image2.getHeight()), new Rect(180,0,canW-180,canH), null);
canvas.drawBitmap(image1, new Rect(0,0,image1.getWidth(),image1.getHeight()), new Rect(canW-180,0,canW,canH), null);
canvas.drawBitmap(image3, new Rect(0,0,image3.getWidth(),image3.getHeight()), new Rect(0,556*2,320,556*2+134*2), null);
canvas.drawBitmap(image4, new Rect(0,0,image4.getWidth(),image4.getHeight()), new Rect(320,556*2,640,556*2+134*2), null);
canvas.drawBitmap(image5, new Rect(0,0,image5.getWidth(),image5.getHeight()), new Rect(640,556*2,960,556*2+134*2), null);
canvas.drawBitmap(image6, new Rect(0,0,image6.getWidth(),image6.getHeight()), new Rect(960,556*2,1280,556*2+134*2), null);
canvas.drawBitmap(image7, new Rect(0,0,image7.getWidth(),image7.getHeight()), new Rect(1280,556*2,1600,556*2+134*2), null);
canvas.drawBitmap(image8, new Rect(0,0,image8.getWidth(),image8.getHeight()), new Rect(1600,556*2,1920,556*2+134*2), null);
canvas.drawBitmap(image9, new Rect(0,0,image9.getWidth(),image9.getHeight()), new Rect(1920,556*2,2240,556*2+134*2), null);
canvas.drawBitmap(image10, new Rect(0,0,image10.getWidth(),image10.getHeight()), new Rect(2240,556*2,2560,556*2+134*2), null);
....
보기만 해도 암걸리는 그런 코드인데...ㅠ 한 화면에 이와 같이 bitmap 그림을 몇십개씩 뿌리려고 할 때 이렇게 메모리를 왕창 쓰지 않고자 한다면 어떤 식으로 해야할지 궁금합니다.
또한 저 이미지 중 일부를 이미지버튼처럼 사용하고자 하는데 이 경우에는 위와 같이 drawBitmap 같은 함수를 사용하면 안되는건가요? 아예 다른 방식으로 접근해야하는지 궁금합니다.