Как мы можем нарисовать что-то между фоном и содержимым произвольного экземпляра View, которым мы не владеем?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как мы можем нарисовать что-то между фоном и содержимым произвольного экземпляра View, которым мы не владеем?

Сообщение Anonymous »

Я работаю над библиотекой, которая изменяет внешний вид View во время выполнения,
"вживую". Мне нужно вставить некоторые операции рисования по оси z между фоном
представления и его содержимым, т. е. сразу после того, как фон отрисован, перед
всем остальным.
Для иллюстрации рассмотрим TextView с пользовательским фоном, где нам нужно
выделить некоторые слова, но мы не владеем View или Drawable, поэтому только
имеем доступ всему, что мы можем получить или связать во время выполнения. Кроме того,
мы можем делать только то, что не будет мешать взаимодействию пользователя с
его собственным представлением; например, мы не хотим переносить фон на случай, если
пользователю потребуется манипулировать им или заменить его.
Изображение

Эта функциональность может быть весьма полезна даже в настройках, которые мы контролируем. Например, предположим, что вы хотите добавить какое-либо оформление позади определенного представления повсюду
в проекте, но было бы утомительно изменять каждый конкретный макет и
содержащий ViewGroup. Если бы мы могли эффективно рисовать непосредственно на
фоне View, решение не зависело бы от конкретного подкласса,

Код: Выделить всё

ViewGroup
включены.
Изображение

Предупреждение: низкое качество видео и явное потворство.
Мы не можем расширять классы во время выполнения, а фреймворк не предлагает никаких
OnDrawListener с доступом к Canvas, поэтому мы невозможно изменить рисунок, как мы
обычно делаем при создании подклассов. Как уже упоминалось, перенос фона
невозможен, и Drawable не предлагает никакого другого способа изменить или подключить его
отрисовку извне, так что это тоже тупик, как и для переднего плана.
Насколько я вижу, все, что осталось, это наложение View, но оно
далеко от фона, так как мы можем справиться это?

Подробнее здесь: https://stackoverflow.com/questions/798 ... n-arbitrar
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»