안녕하세요. 이미지 다루는걸 공부하고 있는데요.

책에 있는대로 했는데도 안되네요. 왜 안되는건가요?
DisplayImage(activity)와 imageView(surfaceview)가 있구요
main.xml의 레이아웃에  com.android.displayimage.ImageView로 넣은 상태입니다.
-----------------main.xml----------------------------------------------------------

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <com.android.displayimage.ImageView
      android:id="@+id/imageview"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"/>


</FrameLayout>

----------------------------DisplayImage.java-----------------------------------
package com.android.displayimage;

public class DisplayImage extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);     
    }
}
-----------------------------ImageView.java---------------------------------------
package com.android.displayimage;

public class ImageView extends SurfaceView implements Callback {

 private Bitmap mImgBack0;
 private Bitmap mImgBack1;
 private Bitmap mImgBack21;
 private Bitmap mImgBack31;
 private int mPlayerWidth;
 private int mPlayerHeight;
 private Drawable mFrontImage[] = new Drawable[4];
 Canvas mCanvas = null;
 SurfaceHolder mHolder = getHolder();
 

 public ImageView(Context context, AttributeSet attrs) {
  super(context, attrs);
  Resources res = context.getResources();
  mFrontImage[0]= context.getResources().getDrawable(R.drawable.front01);
  mFrontImage[1]= context.getResources().getDrawable(R.drawable.front02);
  mFrontImage[2]= context.getResources().getDrawable(R.drawable.front03);
  mFrontImage[3]= context.getResources().getDrawable(R.drawable.front04);
  
  mImgBack0 = BitmapFactory.decodeResource(res,R.drawable.img0);
  mImgBack0 = BitmapFactory.decodeResource(res,R.drawable.img1);
  mImgBack0 = BitmapFactory.decodeResource(res,R.drawable.img21);
  mImgBack0 = BitmapFactory.decodeResource(res,R.drawable.img31);  
  
  mPlayerWidth = mFrontImage[1].getIntrinsicWidth();
  mPlayerHeight = mFrontImage[1].getIntrinsicHeight();
  
 }

 public void surfaceChanged(SurfaceHolder holder, int format, int width,
   int height) {
  // TODO Auto-generated method stub

 }

 public void surfaceCreated(SurfaceHolder holder) {
  // TODO Auto-generated method stub

 }

 public void surfaceDestroyed(SurfaceHolder holder) {
  // TODO Auto-generated method stub

 }
 @Override
 public void draw(Canvas canvas) {
  super.draw(canvas);
  
  canvas.drawBitmap(mImgBack0, 0, 0, null);
  canvas.drawBitmap(mImgBack1, 0, 90, null); 
  canvas.drawBitmap(mImgBack21, 0, 190, null); 
  canvas.drawBitmap(mImgBack31, 0, 310, null);  
  
     for(int i=0;i<4 ; i++){
   mFrontImage[i].setBounds(40+60*i, 360,40+60*i+mPlayerWidth, 360+mPlayerHeight );
   mFrontImage[i].draw(canvas);
     } 
 }
}