117.info
人生若只如初见

android drawcircle支持多点触控吗

是的,Android的drawCircle方法本身不支持多点触控。但是,您可以通过扩展View类并重写其onTouchEvent方法来实现多点触控支持。

以下是一个简单的示例,展示了如何在自定义视图中处理多点触控以绘制多个圆:

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Point;
import android.util.AttributeSet;
import android.view.MotionEvent;
import androidx.appcompat.widget.AppCompatView;

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

public class MultiTouchDrawView extends AppCompatView {
    private List points = new ArrayList<>();
    private Paint paint = new Paint();

    public MultiTouchDrawView(Context context) {
        super(context);
        init();
    }

    public MultiTouchDrawView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public MultiTouchDrawView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        paint.setColor(Color.BLACK);
        paint.setStyle(Paint.Style.STROKE);
        paint.setStrokeWidth(5);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        for (Point point : points) {
            canvas.drawCircle(point.x, point.y, 50, paint);
        }
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        int action = event.getActionMasked();
        switch (action) {
            case MotionEvent.ACTION_DOWN:
                points.add(new Point(event.getX(), event.getY()));
                break;
            case MotionEvent.ACTION_MOVE:
                points.add(new Point(event.getX(), event.getY()));
                break;
            case MotionEvent.ACTION_UP:
                break;
            case MotionEvent.ACTION_CANCEL:
                break;
        }
        invalidate();
        return true;
    }
}

在这个示例中,我们创建了一个名为MultiTouchDrawView的自定义视图类。在onTouchEvent方法中,我们处理了ACTION_DOWNACTION_MOVE事件,将触摸点的坐标添加到points列表中。然后,在onDraw方法中,我们遍历points列表并为每个点绘制一个圆。这样,您就可以实现多点触控来绘制多个圆了。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe698AzsLCQ5WAFI.html

推荐文章

  • android textclock能处理哪些设备

    TextClock是Android 4.2(API 17)版本后引入的一个控件,用于在用户界面中显示当前的日期和时间。以下是关于TextClock的相关信息:
    TextClock支持的Androi...

  • android如何获取当前运行应用进程

    在Android中,要获取当前运行应用的进程,你可以使用ActivityManager的getRunningAppProcesses()方法。以下是一个简单的示例代码:
    import android.app.Act...

  • android studio混淆的设置方法是什么

    在Android Studio中设置混淆(ProGuard)的步骤如下: 打开项目:启动Android Studio并打开你要进行混淆的项目。 访问build.gradle文件:在项目视图中,展开项目...

  • android中如何使用adb命令disable

    要在Android设备上使用ADB命令禁用(禁用触摸屏),请按照以下步骤操作: 首先,确保您已经安装了ADB(Android Debug Bridge)工具。如果没有,请访问这里下载并...

  • android drawcircle怎样处理触摸事件

    在Android中,要在自定义View上处理触摸事件并绘制圆形,你需要重写onTouchEvent方法来处理触摸事件,并在onDraw方法中使用Canvas的drawCircle方法来绘制圆形。以...

  • android drawcircle能用于动画吗

    是的,drawCircle 可以用于 Android 动画。你可以使用 ObjectAnimator 或 ValueAnimator 来创建一个圆形的动画效果。以下是一个简单的示例,展示了如何使用 Obje...

  • android drawcircle在自定义View中应用

    在自定义View中绘制一个圆,你需要继承View类并重写其onDraw()方法。在这个方法中,你可以使用Canvas类的drawCircle()方法来绘制一个圆。以下是一个简单的示例:...

  • android drawcircle怎样绘制虚线圆

    在Android中,要绘制一个虚线圆,你可以使用Canvas类的drawCircle()方法结合Path类来创建虚线效果。以下是一个简单的示例:
    首先,在你的布局文件中添加一个...