View和SurfaceView都可以用于绘制图形,但各有各的适用场合。一般情况,主动更新,不考虑UI线程的限制,双缓存加速等情况下会优先考虑SurfaceView。
下面把上篇中的MyView通过继承SurfaceView来重新编写,具体如下:
public class MyView extends SurfaceView implements Callback, Runnable {
private Paint mPaint;
private SurfaceHolder mSurfaceHolder;
private Thread mThread;
private void initial() {
mPaint = new Paint();
mPaint.setAntiAlias(true);
this.setKeepScreenOn(true);
mPaint.setColor(Color.RED);
mThread = new Thread(this);
mSurfaceHolder = getHolder();
mSurfaceHolder.addCallback(this);
}
public MyView(Context context) {
super(context);
initial();
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
initial();
}
private void draw() {
Canvas mCanvas = null;
try {
mCanvas = mSurfaceHolder.lockCanvas();
mCa

本文介绍了在Android中如何将自定义View替换为SurfaceView进行图形绘制。内容包括获取SurfaceHolder,设置Callback,创建绘制线程,启动线程以及通过lockCanvas()获取Canvas对象进行绘制。这种方式适用于主动更新且不受UI线程限制的情况。
最低0.47元/天 解锁文章
1528

被折叠的 条评论
为什么被折叠?



