Я написал собственный вид, который называется 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)
Я думаю о том, чтобы разбить линию на части, но это будет большойвлияние на текущую реализацию.
Есть ли у вас какие-либо идеи о том, как можно решить эту проблему?