JAVA多线程
来源:互联网 发布:vb.net数据库放到内存 编辑:程序博客网 时间:2024/06/05 21:49
创建方法:
1,扩展Thread类。
2,实现Runnable接口,需要创建Thread类并把实现此接口的对象做为参数传递进去才可以进去启动。
Runnable方法创建SurfaceView
package com.gaara.test;
import android.content.Context;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
public class MyView extends SurfaceView implements Callback,Runnable {
private Thread th = new Thread(this);
private Paint paint ;
private SurfaceHolder sfh;
private Canvas canvas;
public MyView(Context context) {
super(context);
sfh = this.getHolder();
sfh.addCallback(this);
paint = new Paint();
paint.setAntiAlias(true);//设置画笔无锯齿(如果不设置可以看到效果很差)
this.setKeepScreenOn(true);//设置背景常亮
}
@Override
public void run() {
try {
canvas = sfh.lockCanvas(); // 得到一个canvas实例
canvas.drawColor(Color.WHITE);// 刷屏
canvas.drawText("Himi", 100, 100, paint);// 画文字文本
canvas.drawText("这就是简单的一个游戏框架", 100, 130, paint);
} catch (Exception ex) {
} finally { // 备注3
if (canvas != null)
sfh.unlockCanvasAndPost(canvas); // 将画好的画布提交
}
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
th.start();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
}
多线程中创建一个循环,使用前面获取到的SurfaceHolder对象调用sfh.lockCanvas()取得Canvas,
SurfaceHolder手册中的描述是,持有一个显示层的抽象接口,
lockCanvas方法有两种,一种返回一个指定的脏矩形区域,效率比较高,另一种返回整个区域。
需要在创建完成之后才可以调用,否则返回的是null,编辑位图在unlockCanvas() 和 lockCanvas()之间操作,未解锁之前位图不会进行渲染。
- 【Java多线程】多线程死锁
- Java 多线程
- java 多线程
- java多线程
- JAVA多线程
- java多线程
- JAVA多线程
- java多线程
- JAVA 多线程
- Java多线程
- java多线程
- JAVA 多线程
- Java 多线程
- Java 多线程
- java多线程
- Java 多线程
- Java多线程
- java 多线程
- C# 值类型和引用类型的内存管理
- 为什么用VC++6.0时点打开文件时总弹出“ox5003eaed”指令引用的“ox00000000”内存。该内存不能为“read”
- NDK: No implementation found for native
- VS的多线程调试问题
- window 下 mysql 启动 二进制日志文件
- JAVA多线程
- USB接口IC读写器oem软件_AB密码完整解决方案/读写卡测试程序及源代码/c++builder源代码
- 分布式服务平台的协议设计
- EasyUI 动态改变数据窗口列 Dynamic Change DataGrid Coiumns
- N列等高
- android Handler 介绍(一)
- 博客搬家
- oracle函数大全 oracle所有函数举例说明
- Ogre中Fresnel例子分析