android SurfaceView的简单使用
android SurfaceView的简单使用
东西南瓜西葫芦 发表于2年前
android SurfaceView的简单使用
  • 发表于 2年前
  • 阅读 9
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

package com.example.aa;

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class MainActivity extends Activity {
	boolean isT = false;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
//		setContentView(R.layout.activity_main);
		setContentView(new MyView(this));
	}
	class MyView extends SurfaceView implements SurfaceHolder.Callback{
		SurfaceHolder holder;
		MyThread myThread;
		public MyView(Context context) {
			super(context);
			// TODO Auto-generated constructor stub
			holder = this.getHolder();
            holder.addCallback(this);
            myThread = new MyThread(holder);//创建一个绘图线程
		}
		public void surfaceCreated(SurfaceHolder holder) {
			// TODO Auto-generated method stub
			myThread.start();
		}
		public void surfaceChanged(SurfaceHolder holder, int format, int width,
				int height) {
			// TODO Auto-generated method stub
			
		}
		public void surfaceDestroyed(SurfaceHolder holder) {
			// TODO Auto-generated method stub
			isT = false;
		}
		
	}
	class MyThread extends Thread{
		SurfaceHolder holder;
		public MyThread(SurfaceHolder holder) {
			// TODO Auto-generated constructor stub
			this.holder = holder;
			isT = true;
			
		}
		public void run() {
			// TODO Auto-generated method stub
			
			int i = 100;
			while(isT){
				Canvas c = null;
				try {
					synchronized (holder) {
						c = holder.lockCanvas();
						c.drawColor(Color.BLACK);c.drawColor(Color.BLACK);
						Rect rect = new Rect(100,i,100,100);
						Paint paint = new Paint();
						paint.setColor(Color.WHITE);
						c.drawRect(rect, paint);
						c.drawText("i:jhkhj",100,i, paint);
						i+= 100;
						if (c!=null) {
							holder.unlockCanvasAndPost(c);
						}
						Thread.sleep(3000);
					}
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			super.run();
		}
	}
}


共有 人打赏支持
粉丝 2
博文 22
码字总数 7399
×
东西南瓜西葫芦
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: