Длинная линия не может быть нарисована - PullRequest
2 голосов
/ 09 мая 2019

Я написал собственный вид, который называется DottedLine, который в основном рисует вертикальную линию с определенной высотой.

Класс переопределяет onDraw примерно следующим образом:

@Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawLine(getWidth() / 2, size, getWidth() / 2, getHeight() - getHeight() % (size + gap), paint);
    }

Нет необходимости разбираться в деталях выражений, передаваемых в качестве параметров метода drawLine.Достаточно знать, что высота может быть довольно большой (в зависимости от устройства, возможно, от предела GL_MAX_TEXTURE_SIZE), поскольку представление может быть частью прокручиваемого макета.

Проблема в том, что когда я достаточно длинен, я получаю предупреждение и не могу отрисовать линию.

W/OpenGLRenderer: Bitmap too large to be uploaded into a texture (42x5480, max=4096x4096)

Я думаю о том, чтобы разбить линию на части, но это будет большойвлияние на текущую реализацию.

Есть ли у вас какие-либо идеи о том, как можно решить эту проблему?

...