java - 定位 path.lineTo()

标签 java android canvas

我目前正在 Android Studio 上学习 Canvas,我不太确定使用正确的标题,但我一直在研究如何在使用 Seekbar 拖动红点时控制三角形位置。以下是详细信息

下面是我成功绘制三角形的代码。

        @Override
        protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        paint.setColor(Color.RED);
        canvas.drawRoundRect(100, 300, 900, 700, 50, 50,paint);

        Point pointTop = new Point(250, 400);
        Point pointLeft = new Point(150, 150);
        Point pointRight = new Point(350, 150);


        paint.setColor(Color.YELLOW);
        path.setFillType(Path.FillType.EVEN_ODD);
        path.lineTo(pointTop.x, pointTop.y);
        path.lineTo(pointLeft.x, pointLeft.y);
        path.lineTo(pointRight.x, pointRight.y);
        path.lineTo(pointTop.x, pointTop.y);
        path.close();

        canvas.drawPath(path, paint);
        }

图像结果:

enter image description here

预期结果

注意:只有1个红点和1个三角形。

enter image description here

非常感谢=)

最佳答案

阅读下面链接的文档并添加代码后,我已经解决了我的问题

https://developer.android.com/reference/android/graphics/Path

享受 :)

        @Override
        protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        paint.setColor(Color.RED);
        canvas.drawRoundRect(100, 300, 900, 700, 50, 50,paint);

        Point pointTop = new Point(250, 400);
        Point pointLeft = new Point(150, 150);
        Point pointRight = new Point(350, 150);


        paint.setColor(Color.YELLOW);
--------------------- added -------------------------------
        path.moveTo(pointLeft.x, pointLeft.y);
        path.moveTo(pointRight.x, pointRight.y);
        path.moveTo(pointTop.x, pointTop.y);
        path.reset();
--------------------- added -------------------------------
        path.setFillType(Path.FillType.EVEN_ODD);
        path.lineTo(pointTop.x, pointTop.y);
        path.lineTo(pointLeft.x, pointLeft.y);
        path.lineTo(pointRight.x, pointRight.y);
        path.lineTo(pointTop.x, pointTop.y);
        path.close();

        canvas.drawPath(path, paint);
        }

关于java - 定位 path.lineTo(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55247016/

相关文章:

ios - 从主屏幕启动时 HTML5 IOS WebApp Canvas 不呈现

java - Eclipse 说我的 Android 项目包含错误,但没有任何错误

java - 显示具有 5 个索引的数组的总和

java - 居中按钮和 textView

java - 如何循环ArrayList并将每个值发送到下载管理器?

javascript - 如何在 Node.js 中将图像发布到 Twitter

java - Oracle JDBC 类型通过 getObject() 映射到 Java 对象类型 - 错误的文档?

java - 组织.hibernate.boot.MappingNotFoundException : Mapping (RESOURCE) not found

Android 将可绘制对象加载到 ImageView 中占用大量内存

javascript - toDataURL() 很慢