android:mysurfaceview

package com.mySfv;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class MySurfaceViewActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        setContentView(new MyView(this));
    }
    class MyView extends SurfaceView implements SurfaceHolder.Callback{
        private SurfaceHolder holder;
        private MyThread mThread;
        public MyView(Context context) {
            super(context);
            // TODO Auto-generated constructor stub
            holder = getHolder();
            holder.addCallback(this);
            mThread = new MyThread(holder);
        }

        @Override
        public void surfaceCreated(SurfaceHolder holder) {
            // TODO Auto-generated method stub
            Log.i("state", "surfaceCreated");
        }

        @Override
        public void surfaceChanged(SurfaceHolder holder, int format, int width,
                int height) {
            // TODO Auto-generated method stub
            Log.i("state", "surfaceChanged");
        }

        @Override
        public void surfaceDestroyed(SurfaceHolder holder) {
            // TODO Auto-generated method stub
            Log.i("state", "surfaceDestroyed");
        }
        
    }
    
    class MyThread extends Thread{
        private SurfaceHolder holder;
        
        public MyThread(SurfaceHolder holder) {
            super();
            this.holder = holder;
        }

        @Override
        public void run() {
            // TODO Auto-generated method stub
            super.run();
            Canvas c = holder.lockCanvas();
            c.drawColor(Color.YELLOW);
            Paint p = new Paint();
            p.setColor(Color.BLACK);
            Rect rect = new Rect(20,20,80,80);
            c.drawRect(rect, p);
            c.drawText("hello lee.", 20, 100, p);
            
        }
        
    }
}
posted @ 2012-08-06 17:41  ligang305  阅读(290)  评论(0编辑  收藏  举报