Создание девяти (9) патч-файлов png с градиентами - PullRequest
2 голосов
/ 28 февраля 2011

Я хочу создать фон из девяти патчей с градиентом для моего приложения для Android.Мне было интересно, как работают градиенты.Я бы подумал, что ОС должна была бы выяснить, как применить градиент при растяжении кнопки, и я предполагаю, что информация (уравнение графического вектора) недоступна в файле патча 9?Так есть ли решение этой проблемы?Кроме того, что касается сглаживания и т. Д. Я создал несколько фонов с девятью кнопками, но ни у одного из них нет градиента.еще.Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 28 февраля 2011

Почему вы хотите использовать 9-патч для этого? 9-патчи растягивают область изображения путем копирования / дублирования пикселей. Это не будет хорошо работать с градиентами. Рассматривали ли вы вместо этого GradientDrawable ?

<shape android:shape="rectangle">
    <gradient android:startColor="..." android:endColor="..." />
</shape>

См. Форма для рисования .

0 голосов
/ 28 февраля 2011

Что касается вашего вопроса о дизеринге, я не ответил на него в предыдущем ответе.

Боюсь, вам придется включить дизеринг из кода вашего приложения, насколько я знаю, что естьнет способа сделать это из XML.Вы можете использовать вызов setDither(true) на вашем чертеже, как задокументировано здесь .

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

Кроме того, если вы нацеливаетесь на Gingerbread, возможно, стоит прочитать Качество растрового изображения, полосы и сглаживание .Очевидно, они внедрили изменения в 2.3, которые решают эти проблемы.

...