У меня есть PNG-файл, который представляет собой градиентное изображение шириной 283 пикселя в один пиксель, которое мне нужно растянуть на фоне ImageView , растягиваясь только горизонтально. Я попытался установить актив в качестве фона к ImageView, как это:Растяжение градиентного изображения с одним пикселем в растягиваемом или иначе
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/gradient_tile"
android:layout_gravity="bottom|center"
android:scaleType="matrix"/>
, но это просто создает один пиксель линию в середине родительского вида.
Есть ли способ сделать это, или мне нужно запросить более широкое изображение и использовать 9-патч?
Заранее благодарен.
UPDATE: Я закончил тем, что установить минимальные свойства высоты в XML следующим образом:
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="119dp"
android:background="@drawable/gradient_tile_drawable"
android:id="@+id/tiledGradientBackground"
android:layout_gravity="bottom|center"
android:scaleType="matrix"/>
... и затем установить minimumWidth к ширине родительского вида в коде. Не знаю, почему это решить, но это сделал ...
int width = holder.container.getResolvedWidth();
holder.tiledGradientBackground.setMinimumWidth(width);
Вообще говоря, лучший способ сделать градиенты в Android - это использовать «ShapeDrawable», поэтому вы можете растягиваться по мере необходимости и избегать эффектов группировки. – CommonsWare
Спасибо @CommonsWare.Я попробовал создать фигуру и добавить ее в качестве фона для моего изображения, как я видел во многих сообщениях, но, похоже, не имеет никакого эффекта ... – diatrevolo