У меня проблемы с применением градиентного фона к LinearLayout.
Это должно быть относительно просто из того, что я прочитал, но это просто не работает. Для справки я разрабатываю на 2.1-обновление1.
header_bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="90"
android:startColor="#FFFF0000"
android:endColor="#FF00FF00"
android:type="linear"/>
</shape>
main_header.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:orientation="horizontal"
android:background="@drawable/header_bg">
</LinearLayout>
Если я изменю @ drawable / header_bg на цвет - например, # FF0000, он будет работать отлично. Я что-то упускаю здесь очевидное?
Ответы:
Хорошо, мне удалось решить это с помощью селектора. Смотрите код ниже:
main_header.xml:
main_header_selector.xml:
Надеюсь, это поможет тому, у кого такая же проблема.
источник
Также возможно иметь третий цвет (в центре). И разные виды фигур.
Например, в drawable / градиент.xml:
Это дает вам черный - серый - черный (слева направо), который является моим любимым темным фоном.
Не забудьте добавить градиент.xml в качестве фона в свой макет xml:
Также возможно вращение с помощью:
дает вам вертикальную линию
и с
дает вам горизонтальную линию
Возможные углы:
Также есть несколько различных видов фигур:
Округлая форма:
и, вероятно, еще несколько.
Надеюсь, это поможет, ура!
источник
В XML Drawable File:
В вашем файле макета: android: background = "@ drawable / градиент_background"
источник
Попробуйте удалить андроид: градиентRadius = "90". Вот тот, который работает для меня:
источник
Моя проблема заключалась в том, что расширение .xml не было добавлено к имени файла вновь созданного XML-файла. Добавление расширения .xml решило мою проблему.
источник
С Kotlin вы можете сделать это всего за 2 строки
Изменить значения цвета в массиве
результат
источник
Я не знаю, поможет ли это кому-нибудь, но моя проблема заключалась в том, что я пытался установить градиент для свойства "src" ImageView следующим образом:
Не уверен на 100%, почему это не сработало, но теперь я изменил его и поместил drawable в свойство «background» родительского объекта ImageView, которое в моем случае является RelativeLayout, например: (это сработало успешно)
источник
Я бы проверил ваш альфа-канал на ваши цвета градиента. Для меня, когда я тестировал свой код, у меня был неправильно настроен альфа-канал на цветах, и он не работал для меня. Как только я установил альфа-канал, все заработало!
источник
Вы можете использовать пользовательский вид для этого. С помощью этого решения он завершает градиентные формы всех цветов в ваших проектах:
Я также создаю проект с открытым исходным кодом GradientView с помощью этого пользовательского представления:
https://github.com/lopspower/GradientView
источник