2015-06-30 2 views
0

Как сделать сложный вид (который имеет свой собственный фон, изображение и текст внутри него) градиентно прозрачный? Например, первая половина этого представления имеет нормальные цвета, а вторая - от нормального до прозрачного?Сделать комплексный вид «градиентно» прозрачным

Я не могу просто фона этого элемента прозрачным, потому что внутренние элементы не были бы прозрачными. Поэтому для этого представления мне нужен «прозрачный фильтр». Возможно даже?

Чтобы быть более конкретным: у меня есть виджет со списком. Мне нужно, чтобы последний элемент списка был полупрозрачным. Таким образом, пользователь мог видеть обои через него. И этот элемент списка сложный, в нем много мелких просмотров.

+0

Вы можете переопределить 'dispatchDraw' корневого элемента и использовать уловки привратника duff для постепенного отображения всех элементов. – pskink

+0

@pskink вы можете предоставить более конкретную информацию об этом материале для портье, потому что пока неясно, как его использовать. – Ov3r1oad

+1

здесь вы можете найти лучшую информацию по этой теме: http://ssp.impulsetrain.com/porterduff.html – pskink

ответ

0

Использование RelativeLayout

Комплекс установки:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="@dimen/number_picker_row_height" 
    android:background="@android:color/white"> 
    <TextView 
     android:id="@+id/textView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
    <View 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@drawable/gradient_bg"/> 
    <View 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:background="@drawable/image" />  
</RelativeLayout> 

в gradient_bg:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
    <gradient 
     android:startColor="#55ffffff" 
     android:centerColor="#00ffffff" 
     android:endColor="#ffffffff" 
     android:angle="0" 
     android:dither="true" 
     /> 
</shape> 

Это достичь эффект градиента в верхней части любой TextView, и вы также можете установить любой фон на RelativeLayout, а также добавить любой вид изображения поверх фона градиента.

Надеюсь, это поможет!

+0

См. Мой обновленный вопрос. Я думаю, вы меня неправильно поняли. – Ov3r1oad

+0

после ваших последних обновлений, теперь яснее, мой ответ не применяется тогда –

Смежные вопросы