我有一个矩形LinearLayout,拥有一些边距、一些圆角和0.3的透明度。在这个布局中,我有4个不同的布局,因为我要在不同的位置显示不同的图片。
我的问题是,虽然主要布局是0.3,但我希望我的子布局完全可见,或者不受其父布局的影响,请问我该如何实现?我尝试将子布局的alpha设置为1,但没有起作用。将其设置为0确实会使子布局消失,所以似乎我可以将其降低到0.3以下,但不能超过父布局。请问这是一个错误还是我做错了什么?
谢谢。
我已经想出来了!颜色格式为AARRGGBB,因此修改alpha通道(AA)仅影响当前背景而不影响子元素!如果有其他解决方案,我很乐意听取。谢谢!
你可以用这个解决方案来解决你的问题。它非常有效。
parentView.getBackground().setAlpha(128); //your parent view's visibility is now %50 and child view's visibility remains same.
例如,假设您的Linearlayout的背景颜色为#FF0022,并且您想将其不透明度设置为82%,则添加D1到您的十六进制代码中,使用#D1FF0022十六进制代码用于您的viewgroup背景,其中D1是透明度为82%的参数
完整的透明度代码列表可以在这里找到
childView.setBackgroundColor(ColorUtils.compositeColors(yourTint, yourBackground);
看看我对自己的问题的回答这里。
这可能是一个晚回答
但是尝试下面的代码,我希望你能得到你需要的东西
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/aa" //Your own Image in root element
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/RLMain"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#CCFFFFFF" > //Your Alpha Value
<ImageView
android:id="@+id/iv1"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="86dp"
android:src="#FF0000" /> //Your Child Image
</RelativeLayout>