0

所有,请原谅我只是学习Android图形,而我只知道一点。我可以画出类似于Paint托管在的线条的东西Canvas

    Paint background = new Paint();
    background.setColor(getResources().getColor(
            R.color.puzzle_background));
    canvas.drawRect(0, 0, getWidth(), getHeight(), background);


    Paint dark = new Paint();
    dark.setColor(getResources().getColor(R.color.puzzle_dark));
    Paint hilite = new Paint();
    hilite.setColor(getResources().getColor(R.color.puzzle_hilite));
    Paint light = new Paint();
    light.setColor(getResources().getColor(R.color.puzzle_light));
    // Draw the minor grid lines
    for (int i = 0; i < 9; i++) {
        canvas.drawLine(0, i * height, getWidth(), i * height, light);
        canvas.drawLine(0, i * height + 1, getWidth(), i * height + 1,
                hilite);
        canvas.drawLine(i * width, 0, i * width, getHeight(), light);
        canvas.drawLine(i * width + 1, 0, i * width + 1, getHeight(),
                hilite);
    }
    // Draw the major grid lines
    for (int i = 0; i < 9; i++) {
        if (i % 3 != 0)
            continue;
        canvas.drawLine(0, i * height, getWidth(), i * height, dark);
        canvas.drawLine(0, i * height + 1, getWidth(), i * height + 1,
                hilite);
        canvas.drawLine(i * width, 0, i * width, getHeight(), dark);
        canvas.drawLine(i * width + 1, 0, i * width + 1, getHeight(),
                hilite);
    }

但我不知道如果我想在 . 中绘制一些东西,需要哪些必要元素Android。并且是Paint必要元素之一吗?谢谢。

4

1 回答 1

1

我所知道的在 Android 中绘制的方法基本上有三种。

1-覆盖onDraw(如您所做的那样),它为您提供视图的画布以在视图的表面上绘制。这用于简单的绘图,因为代码在主线程中运行。

2- 子类SurfaceView,它提供了一个单独的绘图线程(提供一个 Canvas 以及一个你在上面绘图的 Surface),用于中等负载绘图,因为它有一个单独的线程,所以它可以比 1 更快。

3- OpenglSurfaceView,这是一个不同的概念,您可以在其中创建 3D 场景并直接使用 GPU 进行渲染。这是用于重绘图,因为直接与 GPU 对话可以实现更快的动画,特别是在 3D 游戏中。

正如我在评论中所说,Canvas是您的调色板,它为您提供了绘制线条、圆圈、图像等的基本工具。同时,Paint是您的画笔,它可以让您确定笔画宽度、颜色、文本大小和字体等。如果您对Canvas. 您的绘图板是视图的表面。

于 2013-10-20T18:52:00.287 回答