Android的SurfaceView测试代码

来源:互联网 发布:cnc加工中心手动编程 编辑:程序博客网 时间:2024/05/15 23:46
import android.app.Activity;import android.content.Context;import android.content.pm.ActivityInfo;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.RectF;import android.os.Bundle;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.Window;import android.view.SurfaceHolder.Callback;public class MainActivity extends Activity {int[] rs ={R.drawable.test, R.drawable.test1};protected void onCreate(Bundle savedInstanceState) {requestWindowFeature(Window.FEATURE_NO_TITLE);    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);    super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);SurfaceView surface = (SurfaceView)findViewById(R.id.surface);        surface.setKeepScreenOn(true);                final SurfaceHolder holder = surface.getHolder();        final Context ct = this.getBaseContext();final Thread mythread = new Thread(new Runnable(){int i = 0;@Overridepublic void run() {try {while(true){i++;//两张图片交替显示Bitmap bmp = BitmapFactory.decodeResource(ct.getResources(), rs[i%2]);Canvas canvas = holder.lockCanvas(); canvas.drawColor(Color.WHITE);RectF rectf = new RectF(0, 0, 200, 200);canvas.drawBitmap(bmp, null, rectf, null);holder.unlockCanvasAndPost(canvas);Thread.sleep(1000);}} catch (InterruptedException e) {e.printStackTrace();}}        });         holder.addCallback(new Callback() {@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {}@Overridepublic void surfaceCreated(SurfaceHolder holder) {mythread.start();}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}});}}

布局文件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" ><SurfaceView android:id="@+id/surface"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout>


0 0