activity的使用(十五):surfaceview

来源:互联网 发布:大思英语网络课程转让 编辑:程序博客网 时间:2024/04/29 23:54
package com.example.androidtest;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.view.Window;import android.view.WindowManager;import android.graphics.Canvas;import android.view.SurfaceView;import android.view.SurfaceHolder;import android.content.Context;public class AndroidTest extends Activity {FastRenderView render;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.activity_android_test);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); render = new FastRenderView(this);setContentView(render);}protected void onResume(){super.onResume();render.resume();}protected void onPause(){super.onPause();render.pause();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.android_test, menu);return true;}class FastRenderView extends SurfaceView implements Runnable{Thread renderThread = null;SurfaceHolder holder;volatile boolean running = false;public FastRenderView(Context context) {super(context);holder = getHolder();}public void resume(){running = true;renderThread = new Thread(this);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) {}}}}}

0 0
原创粉丝点击