博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android surfaceview 画
阅读量:4704 次
发布时间:2019-06-09

本文共 2042 字,大约阅读时间需要 6 分钟。

引用:

View Code

package xl.test;
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 ViewTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyView(this));
}
//视图内部类
class MyView extends SurfaceView implements SurfaceHolder.Callback
{
private SurfaceHolder holder;
private MyThread myThread;
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
holder = this.getHolder();
holder.addCallback(this);
myThread = new MyThread(holder);//创建一个绘图线程
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
myThread.isRun = true;
myThread.start();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
myThread.isRun = false;
}
}
//线程内部类
class MyThread extends Thread
{
private SurfaceHolder holder;
public boolean isRun ;
public MyThread(SurfaceHolder holder)
{
this.holder =holder;
isRun = true;
}
@Override
public void run()
{
int count = 0;
while(isRun)
{
Canvas c = null;
try
{
synchronized (holder)
{
c = holder.lockCanvas();//锁定画布,一般在锁定后就可以通过其返回的画布对象Canvas,在其上面画图等操作了。
c.drawColor(Color.BLACK);//设置画布背景颜色
Paint p = new Paint(); //创建画笔
p.setColor(Color.WHITE);
Rect r = new Rect(100, 50, 300, 250);
c.drawRect(r, p);
c.drawText("这是第"+(count++)+"秒", 100, 310, p);
Thread.sleep(1000);//睡眠时间为1秒
}
}
catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally
{
if(c!= null)
{
holder.unlockCanvasAndPost(c);//结束锁定画图,并提交改变。
}
}
}
}
}
}

转载于:https://www.cnblogs.com/sode/archive/2012/07/22/2603822.html

你可能感兴趣的文章
干货|最详尽的神经网络基础
查看>>
翻转字符串和左旋转字符串
查看>>
wampserver配置多站点
查看>>
找不到请求的 .Net Framework Data Provider。可能没有安装
查看>>
实验室管理系统(SQL+VS)
查看>>
C# protogen 处理protobuf生成cs文件
查看>>
oracle_SQL 实验查询及删除重复记录 依据条件 (row)
查看>>
SSM框架搭建
查看>>
[UE4]蓝图比C++慢10倍,是吗?
查看>>
使用IdleTest进行TDD单元测试驱动开发演练(1)
查看>>
零基础入门深度学习(2) - 线性单元和梯度下降
查看>>
微软职位内部推荐-Senior SDE
查看>>
守护进程
查看>>
初入linux系统
查看>>
机器学习预测机动车摇号:神秘的第七位
查看>>
linux 下启动tomcat 提示-bash: ./startup.sh: Permission denied 原来...
查看>>
洛谷P1041 传染病控制
查看>>
Android:interpolator用法
查看>>
集合和函数
查看>>
thinkPHP5 验证码
查看>>