Создание NinePatch / NinePatchDrawable во время выполнения

У меня есть требование к моему приложению Android, чтобы части графики можно было настраивать, получая новые цвета и изображения со стороны сервера. Некоторые из этих изображений представляют собой изображения с девятью фрагментами.

Я не могу найти способ создать и отобразить эти изображения с девятью патчами (которые были получены по сети).

Изображения с девятью патчами извлекаются и сохраняются в приложении как растровые изображения. Чтобы создать NinePatchDrawable , вам понадобится соответствующий NinePatch или фрагмент ( байт [] ) NinePatch. NinePatch НЕ МОЖЕТ быть загружен из ресурсов, поскольку изображения не существуют в / res / drawable / . Кроме того, для создания NinePatch вам понадобится фрагмент NinePatch. Итак, все сводится к фрагменту.
Тогда возникает вопрос, как отформатировать / сгенерировать блок из существующего Bitmap (содержащего информацию NinePatch)?

Я просмотрел исходный код Android и Интернет, и могу Кажется, я не нашел примеров этому. Что еще хуже, все декодирование ресурсов NinePatch, похоже, выполняется изначально.

Был ли у кого-нибудь опыт решения такого рода проблем?

Я нацелен на API уровня 4, если это важно.

38
задан Vadim Kotov 24 July 2017 в 10:00
поделиться