1 package jp.sourceforge.gokigen.memoma;
3 import android.content.Context;
4 import android.graphics.Canvas;
5 import android.util.AttributeSet;
6 import android.util.Log;
7 import android.view.MotionEvent;
8 import android.view.SurfaceHolder;
9 import android.view.SurfaceView;
11 import jp.sourceforge.gokigen.memoma.drawers.ICanvasDrawer;
19 public class GokigenSurfaceView extends SurfaceView implements SurfaceHolder.Callback
21 ICanvasDrawer canvasDrawer = null;
27 public GokigenSurfaceView(Context context)
30 initializeSelf(context, null);
38 public GokigenSurfaceView(Context context, AttributeSet attrs)
40 super(context, attrs);
41 initializeSelf(context, attrs);
49 private void initializeSelf(Context context, AttributeSet attrs)
51 SurfaceHolder holder = getHolder();
52 holder.addCallback(this);
60 public void setCanvasDrawer(ICanvasDrawer drawer)
62 canvasDrawer = drawer;
69 public void surfaceCreated(SurfaceHolder aHolder)
73 if (canvasDrawer != null)
75 canvasDrawer.prepareToStart(getWidth(), getHeight());
90 public boolean onTouchEvent(MotionEvent event)
93 if (canvasDrawer != null)
95 ret = canvasDrawer.onTouchEvent(event);
109 public void surfaceChanged(SurfaceHolder aHolder, int format, int width, int height)
113 if (canvasDrawer != null)
115 canvasDrawer.changedScreenProperty(format, width, height);
131 public void surfaceDestroyed(SurfaceHolder aHolder)
148 //Log.v(Main.APP_IDENTIFIER, "GokigenSurfaceView::doDraw()");
150 SurfaceHolder drawHolder = getHolder();
153 Canvas canvas = drawHolder.lockCanvas();
157 Log.v(Main.APP_IDENTIFIER, "GokigenSurfaceView::doDraw() canvas is null." );
161 //////////////////////////////////////////////
162 if (canvasDrawer != null)
164 canvasDrawer.drawOnCanvas(canvas);
166 /////////////////////////////////////////////
168 drawHolder.unlockCanvasAndPost(canvas);
172 Log.v(Main.APP_IDENTIFIER, "ex.(doDraw())>" + ex.toString() + " " + ex.getMessage());