android - 如何在 Android 中创建带有边和顶点的图

标签 android android-canvas android-drawable graph-theory android-paint

我想创建图形(带有边和顶点),以实现一个称为三色的问题。我只需要一些关于如何开始的指导,我应该使用多个 View 并将每个 View 绘制为圆形,然后如何连接 View 之间的线(边缘)?我应该一直使用像素还是有另一种方法,更简单的方法,因为在处理大图(超过 10 个顶点)时计算像素很复杂。

谢谢。

最佳答案

你想要的叫drawing on Canvas .

作为一个基本示例,您可以看到以下代码,它将创建 2 个顶点和一条连接它们的边:

public class MyView extends View {

    private final Paint p;
    private final Path path;
    private final Point point1;
    private final Point point2;

    public MyView(Context context) {
        super(context);

        p = new Paint(Paint.ANTI_ALIAS_FLAG);
        p.setStrokeWidth(10);
        path = new Path();

        point1 = new Point(200, 300);
        point2 = new Point(700, 800);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        // draw first vertex
        p.setStyle(Paint.Style.FILL);
        p.setColor(Color.GREEN);
        canvas.drawCircle(point1.x, point1.y, 15, p);

        // draw the edge
        path.reset();
        path.moveTo(point1.x, point1.y);
        path.lineTo(point2.x, point2.y);
        p.setStyle(Paint.Style.STROKE);
        p.setColor(Color.CYAN);
        canvas.drawPath(path, p);

        // draw second vertex
        p.setStyle(Paint.Style.FILL);
        p.setColor(Color.BLUE);
        canvas.drawCircle(point2.x, point2.y, 15, p);
    }
}

这将导致:

enter image description here

关于android - 如何在 Android 中创建带有边和顶点的图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43201486/

相关文章:

android - 将 Pushe cordova 插件添加到英特尔® XDK 项目时出错

android - 在某些设备上未调用相机 onPreviewFrame

android - 试图将图像从矩形形状转换为圆形

android - 在Android Canvas中快速绘制大量线条: dealing with antialiasing and KitKat's peculiarities

android - 如何修复零星的可绘制着色?

android - 如何使用ant与android一起构建

java - Android Searchview 使用 ListView 过滤项目点击错误

android - 我无法创建文件夹drawable-xxxhdpi

android - 如何使用 adb 命令向模拟器发送彩信?

java - 以编程方式设置 TextView 背景