Canvas canvas = holder.lockCanvas();
canvas.drawRGB(255, 0, 0);
holder.unlockCanvasAndPost(canvas);
第一行,锁定Surface用于渲染并返回一个可用的Canvas
第二行,解锁Surface并确保通过Canvas进行绘制的内容可显示到屏幕上
例子:
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.view.Menu;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class MainActivity extends Activity {
FastRenderView renderView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
renderView = new FastRenderView(this);
setContentView(renderView);
}
protected void onResume() {//重载
super.onResume();
renderView.resume();
}
class FastRenderView extends SurfaceView implements Runnable
{
Thread renderThread = null;
SurfaceHolder holder = null;
volatile boolean running = false;
public FastRenderView(Context context) {
super(context);
holder = getHolder();
}
public void resume()//自定义
{
running = true;
renderThread.start();
}
public void run()
{
while(running)
{
if(!holder.getSurface().isValid())
continue;
Canvas canvas = holder.lockCanvas();
canvas.drawRGB(255, 0, 0);
holder.unlockCanvasAndPost(canvas);
}
}
public void pause()//自定义
{
running = false;
while(true)
{
try {
renderThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
}
转载于:https://blog.51cto.com/just2012/1394971