Установите альфа-прозрачность только для макета, а не для детей
Я нашел этот вопрос, и у меня почти такая же проблема. Как я могу применить альфа только к относительной компоновке, а не к ней? Может ли кто-нибудь помочь?
У меня есть прямоугольный LinearLayout, который имеет некоторый запас, некоторые круглые углы и альфа-значение 0,3. Внутри этого макета у меня есть 4 разных макета, поскольку я показываю разные изображения в разных положениях. Моя проблема в том, что, хотя основной макет равен 0,3, я хочу, чтобы мой ребенок был полностью видимым или не затронутым им родительской альфа, и мне интересно, как я могу это сделать, пожалуйста? Я попытался установить альфа = 1 на макеты детей, но это не сработало. Если установить его на 0, это приведет к тому, что макет детей исчезнет, поэтому я могу уменьшить ниже 0,3, но не над чем-то выше родителя. Это ошибка, или я делаю это неправильно? Спасибо.
Ответы
Ответ 1
Вместо установки alpha
родителя вы можете использовать FrameLayout
и сначала установить фоновое изображение и установить alpha
этого дочернего элемента. Например
Вместо этого
<LinearLayout
android:background="@drawable/background"
android:alpha="0.3" >
<LinearLayout>
<Button />
<Button />
</LinearLayout>
</LinearLayout >
Используйте этот
<FrameLayout>
<ImageView
android:background="@drawable/background"
android:alpha="0.3" />
<LinearLayout>
<Button />
<Button />
</LinearLayout>
</FrameLayout>