将alpha-transparency设置为仅适用于布局而不是其子项

Ali*_*lin 22 android alpha-transparency android-layout

我发现了这个问题,我遇到了几乎相同的问题.我怎么能只将alpha应用于相对布局而不是它的孩子?有人可以帮忙吗?

我有一个矩形的LinearLayout,它有一些边距,一些圆角和一个0.3的alpha值.在这个布局中,我有4种不同的布局,因为我在不同的位置显示不同的图像.我的问题是虽然主要布局是0.3,但我希望我的孩子完全可见,或者不受它的父母alpha影响,我想知道我怎么能请那样做呢?我尝试在子布局上设置alpha = 1,但它不起作用.将它设置为0确实会使子布局消失,所以看起来我可以减少到0.3以下,但不能超过父级.这是一个错误还是我做错了?谢谢.

sti*_*ike 33

alpha您可以先使用FrameLayout并设置背景图像,然后设置该alpha子图像,而不是设置父图像.例如

而不是使用这个

<LinearLayout 
        android:background="@drawable/background" 
        android:alpha="0.3" >
    <LinearLayout>
        <Button />
        <Button />
    </LinearLayout>     
</LinearLayout >
Run Code Online (Sandbox Code Playgroud)

使用这个

<FrameLayout>
    <ImageView
        android:background="@drawable/background" 
        android:alpha="0.3" />
    <LinearLayout>
        <Button />
        <Button />
    </LinearLayout>     
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

  • 这个答案似乎是Xml级别的最佳解决方案.答案在*"已经回答了上面的问题链接"*不要提这种方法.谢谢! (3认同)