Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Android Canvas не рисовал путь, когда точка пути находилась вне поля зрения

Автор вопроса: mameoОтветов: 1

У меня возникла проблема с Android Canvas при рисовании контура. В моем случае у меня есть относительный макет, работающий как представление карты (без использования API Google или чего-то в этом роде). Я должен нарисовать путь к этому представлению.

    canvas.drawPath(polyPath, borderPaint);

Я также должен рисовать другой тип, например круг, многоугольник, используя холст. Каждый раз, когда мы увеличиваем или уменьшаем масштаб, мы пересчитываем точку пути, чтобы она соответствовала уровню масштабирования. При использовании старого API, такого как Android 2.3.3, проблем нет. Но для более новых API, таких как Android 4.x, когда мы увеличиваем масштаб, есть точки, которые имеют положение вне видимого вида (например, -300, -300). Через некоторое время увеличение, видимая область отображает только небольшую часть моего пути. И вдруг весь путь исчезает. Если мы уменьшим масштаб, он появится снова. Это похоже на то, что холст перестает отображать их (другой объект по-прежнему отображается как значок). То же самое касается круга, овала или многоугольника.

Так что я не уверен, есть ли какие-либо изменения в том, как рисовать холст? Есть ли что-то, что мне не хватает в рисовании с использованием холста?

androidjavaandroid-canvas

Ответы

Ответ 1 · рейтинг 15 · Ali Imran

Добавьте эту строку в инициализацию представления

setLayerType(View.LAYER_TYPE_SOFTWARE, null);

также см. это руководство для API, поддерживаемого на аппаратном уровне.

API Google

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы