Я пытался сделать многоцветный фон в XML, но было доступно только 3 варианта начала, центра, конца и указанных углов. Разве мы не можем сделать фон, подобный этому ниже...
Можем ли мы сделать как этот фон в Android?
Я пытался сделать многоцветный фон в XML, но было доступно только 3 варианта начала, центра, конца и указанных углов. Разве мы не можем сделать фон, подобный этому ниже...
Можем ли мы сделать как этот фон в Android?
Согласно developers.android вы можете... и это код, который они использовали
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:angle="45"
android:endColor="#87CEEB"
android:centerColor="#768087"
android:startColor="#000"
android:type="linear" />
</shape>
также здесь учебник
надеюсь, что это поможет
Вы не можете реализовать +3 градиентный цвет в XML файле. Но вы можете сделать это в свой код java/kotlin с классом GradientDrawable. Это версия Java, замените массив цветов ярлыками цветов.
GradientDrawable gradientDrawable = new GradientDrawable(
Orientation.TOP_BOTTOM,
new int[]{ContextCompat.getColor(this, R.color.color1),
ContextCompat.getColor(this, R.color.color2),
ContextCompat.getColor(this, R.color.color3),
ContextCompat.getColor(this, R.color.color4)});
findViewById(R.id.background).setBackground(gradientDrawable);
Создайте новый XML файл в Drawable и скопируйте этот код:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:startColor="#9A0C0C"
android:centerColor="#CE9908"
android:endColor="#3091FF"
android:angle="270"/>
</shape>
Это может быть достигнуто с помощью векторной графики я сделал этот градиент фона в Adobe Illustrator, а затем импортировал этот векторный актив в виде XML в Android Studio, и он прекрасно работает с масштабируемостью векторов
и вот код для этого вектора /xml drawable
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="987.3dp"
android:height="870.3dp"
android:viewportWidth="987.3"
android:viewportHeight="870.3">
<path android:pathData="M0,870l0,-870l987,0l0,870z">
<aapt:attr name="android:fillColor">
<gradient
android:endX="493.5"
android:endY="870"
android:startX="493.5"
android:startY="2.6645353E-14"
android:type="linear">
<item
android:color="#FF0000FF"
android:offset="0" />
<item
android:color="#FF6AFCFF"
android:offset="0.1974" />
<item
android:color="#FFE900D0"
android:offset="0.3786" />
<item
android:color="#FFFF7D15"
android:offset="0.5906" />
<item
android:color="#FFE6FF55"
android:offset="0.7513" />
<item
android:color="#FFED1E79"
android:offset="1" />
</gradient>
</aapt:attr>
</path>
Вы можете сделать это с помощью слоя-списка радиальных градиентов, тогда вы устанавливаете различную непрозрачность для разных элементов