在我的应用程序中,我设置了顶级linearlayout的背景图像,然后淡化背景我将其alpha设置为.2但这会产生一个奇怪的问题,因为它还为布局的所有子项设置alpha即使我明确地在孩子们中定义了不同的alpha值。
是否可以设置父级的alpha值而不影响子级的alpha值?
有什么方法可以在顶级视图上设置alpha而不影响该视图中的alpha?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ll1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:background="@drawable/bg"
android:alpha="0.2">
<Button android:id="@+id/btn1"
android:text="Set 1"
android:layout_width="300px"
android:layout_height="150px"
android:layout_gravity="center"
android:background="@drawable/button1"
android:tag="1"
android:alpha="1"/>
<Button android:id="@+id/btn2"
android:text="Set 2"
android:layout_width="300px"
android:layout_height="150px"
android:layout_gravity="center"
android:background="@drawable/button2"
android:tag="2"/>
</LinearLayout>
答案 0 :(得分:21)
这正是它的工作方式。
为什么不简单地将背景可绘制的“@ drawable / bg”的alpha更改为0.2?
或者,尝试使用此基本结构的FrameLayout:
<FrameLayout>
<ImageView
android:background="@drawable/bg"
android:alpha="0.2" />
<LinearLayout>
<Button />
<Button />
</LinearLayout>
</FrameLayout>
答案 1 :(得分:3)
一种方法是在哈希代码中设置颜色的alpha值,即#RRGGBB而不是#AARRGGBB。这确保了alpha值不会被继承。
答案 2 :(得分:1)
您需要使用framelayout。另外,你的按钮被一个alpha设置的线性布局包围,这也会影响按钮。