相关疑难解决方法(0)

Android Canvas重做和撤消操作

我正在绘制project.my代码明智地工作,但是,canvas重做和撤消操作不能正常工作.undo操作不完美和重做操作不能正常工作.我的撤销操作从路径arraylist删除路径并保存到undopaths arraylist和redo操作从undopaths arraylist中删除最后一个元素并保存到路径arraylist.

这是我的代码:

import java.util.ArrayList;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;

public class DrawView extends View implements OnTouchListener {
    private Canvas  mCanvas;
    private Path    mPath;
    private Paint       mPaint;   
    private ArrayList<Path> paths = new ArrayList<Path>();
    private ArrayList<Path> undonePaths = new ArrayList<Path>(); 

    private Bitmap im;
    public DrawView(Context context) 
    {
        super(context);
        setFocusable(true);
        setFocusableInTouchMode(true);      
        this.setOnTouchListener(this);
        mPaint = new Paint();
        mPaint.setAntiAlias(true);
        mPaint.setDither(true);
        mPaint.setColor(0xFFFFFFFF);
        mPaint.setStyle(Paint.Style.STROKE);
        mPaint.setStrokeJoin(Paint.Join.ROUND);
        mPaint.setStrokeCap(Paint.Cap.ROUND);
        mPaint.setStrokeWidth(6);
        mCanvas = new Canvas();
        mPath …
Run Code Online (Sandbox Code Playgroud)

android

20
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1