Android холст рисовать текст частично
На холсте можно рисовать текст, но сделать так, чтобы половина его не отображалась (как будто он частично рисуется на холсте, но фактически не на холсте). У меня есть индикатор на "графике" с некоторым текстом, и он следует за точкой, но я не хочу, чтобы текст выводился из части графика (я рисую другие вещи вне этой области).
У меня также есть фон на макете за холстом, поэтому я не могу просто рисовать растровым изображением, потому что это может вызвать проблемы с соотношением сторон / размером (не очень хорошо выглядит).
Я пытался искать ответы по всему Google, переполнение стека и экспериментально, но безрезультатно. В Google я нашел много интересных вещей о рисовании текста на холсте Android, но ничего такого, что я искал раньше, я довольно озадачен, и я начинаю думать, что то, что я хочу, даже невозможно, и мне может понадобиться нарисовать текст обычай с точками или найти альтернативу, которая выглядит так же хорошо.
2 ответа
Это абсолютно возможно. Вероятно, самым быстрым является использование clipRect для ограничения рисования частью вашего графика. Смотрите этот ответ: Использование clipRect - объяснение
Ссылка на различные формы clipRect находится здесь: http://developer.android.com/reference/android/graphics/Canvas.html, android.graphics.Region.Op)
Если я вспомню, вся операция будет выглядеть примерно так:
yourCanves.save()
yourCanvas.clipRect(...)
yourCanvas.drawText(...)
yourCanvas.restore()
Вызов restore() служит для отмены clipRect, чтобы вы могли рисовать вне его для последующего рисования.
Самое простое решение, которое пришло мне в голову, - это вырезать с помощью подстроки текст, который вы хотите отобразить.
Пример:
if(MyString >5){
canvas.drawText("VeryLongTe...");
}