Nine-Patch Drawable vs Shape Drawable. Что должно быть предпочтительнее?

Мой коллега и я разработали два приложения параллельно, каждый со схожим стилем. Основной вид этих приложений - радиальный градиент. Он реализовал его как изображение с девятью патчами, и я сделал его с возможностью рисования. Оба генерируют схожие и приемлемые результаты.

Итак, мой вопрос, который мы должны использовать? Существуют ли компромиссы между потреблением памяти и производительностью? Я полагаю, что на изображение может потребоваться время для загрузки, но для рисования фигуры требуется больше времени для рисования (из-за расчетов). Сохраняются ли они в кеше, и эти штрафы происходят только в первый раз, когда они отображаются или эти проблемы продолжаются?

Форма:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <gradient
        android:startColor="#003472"
        android:endColor="#000034"
        android:gradientRadius="350"
        android:type="radial"/>
</shape>

Девять исправлений:

enter image description here

Ответ 1

Выбираемая форма отлично подходит для градиентного изображения с простыми постоянными изменениями цвета. С другой стороны, 9-патч-изображения отлично подходят для изображений с большим количеством деталей, постоянным цветом в областях растяжения.

Ответ 2

Просто напал на эту проблему раньше.

НЕ ИСПОЛЬЗУЙТЕ ФОРМУ В XML, ЕСЛИ У ВАС ЕСТЬ АНИМАЦИЯ, КОТОРАЯ ПРИНИМАЕТ ЭТО. Причина в том, что кеширование (особенно, если вы используете аппаратное ускорение), сделает его действительно "лаги", поскольку экран не будет обновляться так часто.

Ответ 3

Взгляните на ответ, данный @Иван Бартовым. Но благодаря тщательному анализу кода он приходит к выводу, что для большинства общих случаев использование 9-патча требует меньшего количества процессов, чем меньше памяти, чем генерируемых градиентов. Поэтому в большинстве случаев лучше всего использовать 9 патчей.

Взгляните на его ответ на детали режима: Что я должен использовать для повышения производительности, с девятью патчами или ресурсом xml?