Я пытаюсь создать рисуемый элемент управления формой наложения, который в основном будет иметь сплошное БЕЛОЕ поле вверху, а затем оставшийся сегмент экрана будет иметь градиент от сплошного белого до полупрозрачного белого. Мы используем это, чтобы наложить фоновое изображение, чтобы создать сплошную белую область сверху, а затем постепенно переходя в фоновое изображение внизу.
Используя этот код, он получает в основном то, что я хочу, за исключением того, что мне нужна настоящая сплошная белая область под областью логотипа компании (извините, мне пришлось убрать логотип компании и имя приложения на снимке экрана) с градиентом, начинающимся ниже сплошного белого .
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="270"
android:startColor="#ffffffff"
android:centerColor="#00ffffff"
android:endColor="#00ffffff"
android:centerY="0.6"
android:type="linear" />
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="#ffffffff"
android:centerColor="#ffffffff"
android:endColor="#00ffffff"
android:centerY="-0.17"
android:gradientRadius="100%p"
android:type="radial" />
</shape>
</item>
</layer-list>
Что производит отображение, подобное этому:
Но я действительно хочу, чтобы более сплошная белая область находилась непосредственно под областью логотипа компании, а затем с градиентом, начинающимся после этой точки. Но вы можете видеть, что градиент начинается в верхней части экрана.
Я пытался сделать что-то вроде следующего, но это не работает. Добавление первого элемента в список дает мне сплошную область вверху, но по какой-то причине, которую я, вероятно, просто не понимаю, заключается в том, что верхний элемент заполняет весь экран сплошным белым цветом. Я попытался переместить этот первый элемент вниз, но это все равно дало мне сплошной белый экран.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item >
<shape
android:shape="rectangle">
<size android:height="100dp" />
<solid android:color="#ffffffff"/>
</shape>
</item>
<item android:top="100dp" >
<shape
android:shape="rectangle">
<gradient
android:angle="270"
android:startColor="#ffffffff"
android:centerColor="#00ffffff"
android:endColor="#00ffffff"
android:type="linear" />
</shape>
</item>
<item android:top="100dp" >
<shape
android:shape="rectangle">
<gradient
android:startColor="#ffffffff"
android:centerColor="#ffffffff"
android:endColor="#00ffffff"
android:centerY="-0.17"
android:gradientRadius="100%p"
android:type="radial" />
</shape>
</item>
</layer-list>
Может ли кто-нибудь сказать мне, что я делаю неправильно, или дать мне лучший способ сделать это.
Просто для дополнительной информации. Фактическое изображение применяется к фону базового представления LinearLayout. Затем другой вид накладывается поверх базового вида с этим набором рисунков в качестве фона на его LinearLayout, поэтому он действует как маска наложения поверх фонового изображения.
Я ценю любую помощь, которую я могу получить по этому поводу.