В качестве упражнения я пытаюсь расширить ImageButton
, чтобы добавить некоторые функции, которые я считаю полезными.Один, в частности, это тень дроу.Я ударил эту пресловутую стену этим.
Мне кажется, что класс, расширяющий BitmapDrawable
, необходим.Этот класс содержит объект Paint
, используемый для рисования растрового изображения на экране.Если бы у меня был доступ к этому Paint
объекту ... все, что мне нужно было бы сделать, это вызвать его setShadowLayer()
метод ... но, увы, это private
.Существует метод public
, getPaint()
, который возвращает объект рисования, но любые изменения в нем будут бесполезны, если не будет соответствующего метода setPaint()
.(Нет.)
В настоящее время мой мыслительный процесс выглядит примерно так:
- Создать класс
ShadowBitmapDrawable
, который extends BitmapDrawable
- Внутри этого класса каким-то образом измените объект
BitmapDrawable
Paint
с помощью метода Paint
setShadowLayer()
. - В моем пользовательском классе
ImageButton
вызовите setImageDrawable(Drawable d)
и передайте его моемуShadowBitmapDrawable
объект.
Шаг 2 - дорожный блок.Что я могу сделать, чтобы изменить BitmapDrawable
Paint
объект?Обратите внимание, что я добавил свой мыслительный процесс только как показатель того, где я нахожусь в этой проблеме.Я открыт для других предложений.
Вот несколько ссылок:
PS У меня плохойЯ чувствую, что уже знаю ответ, который получу, и мне это не понравится.Думаю, я все равно оставлю вопрос и надеюсь на лучшее.