【问题标题】:Set alpha-transparency only to layout and not to it's children [duplicate]仅将 alpha-transparency 设置为布局而不是其子项[重复]
【发布时间】:2013-03-01 20:03:03
【问题描述】:

我发现了这个问题,我也遇到了几乎同样的问题。我如何将 alpha 仅应用于相对布局而不应用于其子布局?有人可以帮忙吗?

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

【问题讨论】:

    标签: android android-layout alpha-transparency


    【解决方案1】:

    您可以使用FrameLayout 并首先设置背景图像,然后设置该孩子的alpha,而不是设置父级的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>
    

    【讨论】:

    • 这个答案似乎是 Xml 级别的最佳解决方案。 “上面已经回答了这个问题的链接”的答案没有提到这种方法。谢谢!
    • 提供:java.lang.RuntimeException: Binary XML file line #4: You must supply a layout_width attribute.ImageViewandroid:layout_width="match_parent"android:layout_height="match_parent" 并没有改善它。
    猜你喜欢
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多