SurfaceView双缓冲技术引入
2024-09-01 12:42:22
package com.loaderman.customviewdemo; import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.SurfaceHolder;
import android.view.SurfaceView; public class DoubleBufferingTextView extends SurfaceView {
private Paint mPaint; public DoubleBufferingTextView(Context context) {
super(context);
init();
} public DoubleBufferingTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
} public DoubleBufferingTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
} private void init() {
mPaint = new Paint();
mPaint.setColor(Color.RED);
mPaint.setTextSize(30); getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) { drawText(holder);
} @Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override
public void surfaceDestroyed(SurfaceHolder holder) { }
});
} private void drawText(final SurfaceHolder holder) {
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
Canvas canvas = holder.lockCanvas();
if (canvas != null) {
canvas.drawText(i + "", i * 30, 50, mPaint);
}
holder.unlockCanvasAndPost(canvas); try {
Thread.sleep(800);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}).start();
} }
效果:
最新文章
- 使用httpclient发送get或post请求
- C# Async与Await的使用
- angular2 - content projection-
- Java软件工程师全栈技能
- Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn
- 用FusionChartsFree做饼状图、柱状图、折线图的实例
- MongoDB--架构搭建(主从、副本集)之副本集
- GIS开发 图形常见算法
- Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.apache.commons.codec.digest.DigestUtils.sha1Hex(Ljava/lang/String;)Ljava/lang/String;
- 一个sql实现查询并且插入到另一个表中
- Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二):数据库设计
- OpenStack虚拟机快照和增量备份实现
- PyQt5 笔记(01):嵌套布局
- 调研ANDRIOD平台的开发环境的发展演变
- Hat's Fibonacci hdu 1250
- Android和iOS中Cocos2dx的横屏竖屏设置
- Apache Ignite简介以及Ignite和Coherence、Gemfire、Redis等的比较
- 10 华电内部文档搜索系统 search05
- 【bootstrap】插件
- 五校联考模拟赛Day2T2矩阵(容斥原理)