package com.ganstyle.activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.util.Log;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
public class GameView extends SurfaceView implements Callback,Runnable{
private Paint paint;
private SurfaceHolder sh;
private Canvas canvas ;
private boolean isRunning = true;
public GameView(Context context) {
super(context);
sh =this.getHolder(); //surface遥控器
sh.addCallback(this);
}
private int x;
private void drawView(
{ //当按返回键报错时,第一种处理方法, 去掉 if 和finally 执行代码,报空指针
if(sh != null) try{
canvas = sh.lockCanvas();
paint= new Paint();
paint.setColor(Color.RED);
paint.setStyle(Style.STROKE);
canvas.drawCircle(200, 200, x++, paint);
}catch (Exception e) {
Log.i("",e.toString());
} finally{
if(canvas !=null)
sh.unlockCanvasAndPost(canvas);
}
}
public void run() {
while (isRunning)
{
drawView();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
Log.i("surfaceChanged","surfaceChanged");
}
public void surfaceCreated(SurfaceHolder holder) {
Log.i("surfaceCreated","surfaceCreated");
new Thread(this).start();
}
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
Log.i("surfaceDestroyed","surfaceDestroyed");
isRunning =false ;
}
//当按返回键报错时,第二种 处理方法 ,用其中一种可以
// @Override
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// // TODO Auto-generated method stub
// if (keyCode == KeyEvent.KEYCODE_BACK)
// {
// isRunning = false;
// }
// return super.onKeyDown(keyCode, event);
// }
//
}
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.util.Log;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
public class GameView extends SurfaceView implements Callback,Runnable{
private Paint paint;
private SurfaceHolder sh;
private Canvas canvas ;
private boolean isRunning = true;
public GameView(Context context) {
super(context);
sh =this.getHolder(); //surface遥控器
sh.addCallback(this);
}
private int x;
private void drawView(
{ //当按返回键报错时,第一种处理方法, 去掉 if 和finally 执行代码,报空指针
if(sh != null) try{
canvas = sh.lockCanvas();
paint= new Paint();
paint.setColor(Color.RED);
paint.setStyle(Style.STROKE);
canvas.drawCircle(200, 200, x++, paint);
}catch (Exception e) {
Log.i("",e.toString());
} finally{
if(canvas !=null)
sh.unlockCanvasAndPost(canvas);
}
}
public void run() {
while (isRunning)
{
drawView();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
Log.i("surfaceChanged","surfaceChanged");
}
public void surfaceCreated(SurfaceHolder holder) {
Log.i("surfaceCreated","surfaceCreated");
new Thread(this).start();
}
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
Log.i("surfaceDestroyed","surfaceDestroyed");
isRunning =false ;
}
//当按返回键报错时,第二种 处理方法 ,用其中一种可以
// @Override
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// // TODO Auto-generated method stub
// if (keyCode == KeyEvent.KEYCODE_BACK)
// {
// isRunning = false;
// }
// return super.onKeyDown(keyCode, event);
// }
//
}