SurfaceView绘制触摸轨迹出现闪烁的解决方法一

本文介绍了一种解决SurfaceView在绘制触摸轨迹时出现闪烁现象的方法。通过使用两个Path对象,分别保存上一次的canvas绘制内容,并在新路径绘制时避免直接更新原有Path,从而减少了闪烁。在触摸事件中,根据ACTION_DOWN、ACTION_MOVE和ACTION_UP更新路径,并在run方法中以适当的帧率刷新canvas。
摘要由CSDN通过智能技术生成

这里利用两个path保留对上一个canvas绘制内容,代码如下:

package com.tobacco.touchdraw;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.SurfaceHolder.Callback;
import android.view.View.OnTouchListener;

public class LSurfaceView extends SurfaceView implements Callback,OnTouchListener,Runnable{
 private SurfaceHolder sfh;
 private Canvas canvas;
 private Paint paint;
 private float lastX,lastY;
 private Path path1;
 private Path path2;
 private boolean flag;

 public LSurfaceView(Context context) {
  super(context);
  sfh=this.getHolder();
  sfh.addCallback(this);
  paint=new Paint();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值