Android中使用SurfaceView的方法
SurfaceView在游戏开发中有着举足轻重的地位,它对于画面的控制有着更大的自由度
(不像View要用handler来更新,关于View的),但这方面的参考资料并不是太多,能找到的例子都有点喧宾夺主的感觉,
不能把使用的流程清晰展示出来,下面是个简单的示例,力求把流程清楚展示,其他的可简则简。

程序效果:用线程画一个蓝色的长方形。

package com.ray.test;
/*
* SurfaceView的示例程序
* 演示其流程
*/
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class Test extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyView(this));
}

//内部类
class MyView extends SurfaceView implements SurfaceHolder.Callback{

SurfaceHolder holder;
public MyView(Context context) {
super(context);
holder = this.getHolder();//获取holder
holder.addCallback(this);
//setFocusable(true);

}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {

}

@Override
public void surfaceCreated(SurfaceHolder holder) {
new Thread(new MyThread()).start();
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {

}

//内部类的内部类
class MyThread implements Runnable{

@Override
public void run() {
Canvas canvas = holder.lockCanvas(null);//获取画布
Paint mPaint = new Paint();
mPaint.setColor(Color.BLUE);

canvas.drawRect(new RectF(40,60,80,80), mPaint);
holder.unlockCanvasAndPost(canvas);//解锁画布,提交画好的图像

}

}

}
}

更多相关文章

  1. 浅谈Android原生混合式开发架构(ReactNative,Flutter)设计
  2. Android平台调用so库中函数的流程及一些坑
  3. 框架和流程——OkHttp 源码详解(一)
  4. Android内存泄漏终极解决篇(下)
  5. view绘制流程些许心得
  6. Android(安卓)Service 通知Activity更新界面的方法研究|Service
  7. Android面试题(28)-android的view加载和绘制流程
  8. Android入门——画布Canvas的简单应用
  9. 在eclipse中使用ServiceManager

随机推荐

  1. Android——Activity去除标题栏和状态栏
  2. android Vitamio Live 实时视频 记录
  3. android 多媒体相关代码概况—(JAVA SCOPE
  4. 某个蝰蛇音效的卡刷包代码分析
  5. Error inflating class com.google.andro
  6. Android——使用Volley+fastJson在新线程
  7. Android 中读取SD卡文件时抛出NullPointe
  8. Android 自定义WebView点击输入框不弹出
  9. Android实现屏幕截图并保存截图到指定文
  10. Android中Task任务栈的分配