#android #android-layout #background
#Android #android-макет #фон
Вопрос:
На самом деле, я хочу применить это в качестве фона для страниц моего приложения для Android, но я хочу записать его в XML, и я не знаю, с чего мне начать?
Комментарии:
1. преобразование в svg и импорт в качестве векторного ресурса. насколько мне известно, использование полноэкранных XML-чертежей вызывает проблемы с производительностью. для этого требуется чертовски много времени. рекомендуется использовать изображения в формате jpg везде, где это возможно
2. но если я использовал его как изображение, мне нужно изменить его размер в соответствии с различными размерами экрана и плотностью, верно?
3. для этого поместите изображение в папку nodpi. для повышения производительности используется другой размер отрисовываемых объектов. чтобы узнать разницу, см. Раздел Android monitor для различных рассмотренных случаев
Ответ №1:
На самом деле вы знаете, как это сделать. Gradient
, GradientDrawable
это ключ.
Приятно прочитать этот огромный учебник по рисованию / источник: Drawables. Для поиска градиента в этом заголовке: градиентные цветные фигуры
Также более короткий: градиент, который можно рисовать в android.
Также, если вы хотите сделать это через styles.xml
, просто добавьте эту строку в свою тему. По умолчанию это будет добавлено background.xml
ко всем вашим действиям.
<item name="android:windowBackground">@drawable/background</item>
Не забывайте, что вы также можете устанавливать простые цвета подобным образом :
<item name="android:windowBackground">#AA123456</item>
Если вы хотите изменить цвет фона активности, чтобы фон можно было рисовать программно, я использую этот способ :
//for color
getWindow().getDecorView().setBackgroundColor(yourdesiredcolor);
//for drawable,eg gradient
getWindow().getDecorView().setBackground(yourdesireddrawable);
Комментарии:
1. Я рад вам помочь. Счастливого кодирования.
2. 1 для amswer, но здесь не хватает нескольких моментов, связанных с производительностью. если yoi тоже сможет их добавить, то будущие посетители этого ответа получат выгоду
3. @MohammedAtif спасибо за хорошее указание. Я быстро ответил на этот вопрос, потому что был снаружи. Вы можете предложить изменения для этого ответа, и мне действительно интересно их увидеть.