小编Shr*_*har的帖子

我们可以绘制一个使用Path对象的圆圈吗?[在参数中,如drawPath()]

我输入了一个使用Canvas的程序.

它提供了一个弹出菜单,提供3个绘图工具作为选项:

  1. 划伤屏幕时画线

  2. 根据屏幕上的起点和终点绘制线条

  3. 画一个圆圈

此外,还有以下选项:

  1. 明确

  2. 解开

在线上执行撤消时,根本不存在任何问题,因为两者都基于路径.(用途List<Path>).但是这里开始出现问题.使用Point对象绘制圆.所以问题是:

  1. 我不能让Android区分 - 绘制线条和圆圈的顺序.例如:我绘制5行,然后是5个圆(或者).目前没有任何情报可以遵循他们的绘画顺序.因此,用线条和圆圈一起取消画布会导致混乱.
  2. 当前代码(尚未深入调试)需要2次点击才能撤消一个圆而不是1.

我希望我很清楚.[Downvoters,如果被吸引,被要求输入原因,以指导这个初学者,一个通常的downvotes受害者,不知道改进的确切原因].

下面分享的代码(很复杂).我尝试将一个类专门用于每个绘图工具(直线,圆) - 它工作 - 除了 - 它没有在画布上绘制任何东西.所以,所有人都回来了.

码:

 package com.example.orbit_.undofortouch;

import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Point;
import android.os.Bundle;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.PopupMenu;
import android.widget.Toast;


import java.util.ArrayList;
import java.util.List;

public class MainActivity extends Activity {

    Button b1, b2, b3;
    PopupMenu …
Run Code Online (Sandbox Code Playgroud)

graphics android undo android-canvas android-drawable

3
推荐指数
1
解决办法
5952
查看次数