Android:具有不同alpha值的嵌套线性布局
Posted
技术标签:
【中文标题】Android:具有不同alpha值的嵌套线性布局【英文标题】:Android: Nested linear layout with different alpha value 【发布时间】:2012-12-02 02:32:30 【问题描述】:我有一个矩形 LinearLayout,它有一些边距、一些圆角和 0.3 的 alpha 值。在这个布局中,我有 4 种不同的布局,因为我在不同的位置显示不同的图像。
我的问题是,虽然主要布局是 0.3,但我希望我的孩子完全可见,或者不受其父 alpha 的影响,我想知道我该怎么做?我尝试在子布局上设置 alpha=1 但它不起作用。将其设置为 0 确实会使子布局消失,所以看起来我可以减少到 0.3 以下,但不能超过父级。请问这是bug还是我做错了?
谢谢。
【问题讨论】:
【参考方案1】:我真的想通了!颜色是 AARRGGBB,所以修改 alpha 通道 (AA) 只会影响当前背景,而不影响子元素!如果有其他解决方案,我很高兴听到它。谢谢!
【讨论】:
是的,就是这样做的。此回复提供了完整的操作方法:***.com/questions/15852122/hex-transparency-in-colors【参考方案2】:您可以使用this 解决方案解决您的问题。效果很好。
parentView.getBackground().setAlpha(128); //your parent view's visibility is now %50 and child view's visibility remains same.
【讨论】:
很好的答案,谢谢!【参考方案3】:为了防止子视图受到其父背景的影响...
真相:非 alpha-255 的“颜色”实际上并不是一种颜色 - 它只是一种色调!
因此:子视图背景的感知外观是: (a) child.setBackgroundColor() 指定的确切颜色,当该颜色具有 alpha-255 或: (b) child.setBackgroundColor() 和父背景的合成。
因此,要完全控制子背景(完全不考虑父背景),您必须构建第三种颜色,该颜色将由您选择的色调和您选择的 alpha-255 背景组合而成。
您必须提名背景! (根据定义,只能在背景上渲染色调。如果没有明确指定,主题背景最终将发挥作用。)
这段代码花了几个月的时间才找到,结果很完美。
childView.setBackgroundColor(ColorUtils.compositeColors(yourTint, yourBackground);
查看我对自己问题的回答here。
【讨论】:
【参考方案4】:如果您只想将 alpha 设置为父父布局并且不希望将其转换为其子视图。使用添加了透明度代码的十六进制颜色。
例如-假设您的 Linearlayout 的背景颜色是#FF0022,并且您希望将其不透明度设置为 82%,然后将 D1 添加到您的十六进制代码并使用 #D1FF0022 十六进制代码作为您的视图组背景,其中 D1 是不透明度 82%
透明度代码的完整列表可以找到here
【讨论】:
【参考方案5】:这可能是迟到的答案
但是试试下面的代码,我希望你能得到你需要的东西
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:background="@drawable/aa" //Your own Image in root element
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/RLMain"
android:layout_
android:layout_
android:background="#CCFFFFFF" > //Your Alpha Value
<ImageView
android:id="@+id/iv1"
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="86dp"
android:src="#FF0000" /> //Your Child Image
</RelativeLayout>
【讨论】:
以上是关于Android:具有不同alpha值的嵌套线性布局的主要内容,如果未能解决你的问题,请参考以下文章
android,线性布局1,里面嵌套线性布局2(垂直排列),想让2在1里是垂直居中的,怎么搞?
如何在嵌套线性布局中使 imageButton 的高度占屏幕尺寸的 25%。 Android XML 横向布局