如何在安卓中使一个LinearLayout部分透明?

32

我有一个包含2个LinearLayoutsRelativeLayout,其中一个部分覆盖另一个。 我想让顶部的LinearLayout部分透明,这样我就可以看到第二个LinearLayout知道我有两个图像作为这两个LinearLayouts的背景


所以你想让第一布局覆盖部分半透明地覆盖在第二布局上? - johntheripp3r
@user2137817,你能发一下你的布局代码吗?我需要和你发布的一样的东西。 - ydnas
7个回答

66

当我们设置颜色时,就像ARGB(Alpha Red Green Blue)一样。您需要更改颜色代码中的alpha以增加或减少透明度的数量

您可以将其范围从00到FF(十六进制)

最大透明度为=>#00555555(这里00代表alpha)

最小或无透明度为=>#FF555555(这里FF代表alpha)

因此,要设置ImageView的透明度,您可以编写以下代码:

ImageView image = (ImageView) findViewById(R.id.myImage);
image.setAlpha(0.3);

此外,您可以像这样为 LinearLayout 设置透明度:

LinearLayout ll = (LinearLayout) findViewById(R.id.linearlayout);
ll.setAlpha(0.4);

2
问题是,如果我更改线性布局的alpha值,子元素也会变成透明的,而我不希望这样。 - user2137817
然后将您的LinearLayout设置为透明。接着添加一个ImageView并控制该ImageView的透明度。 - arshu
我的问题是子元素,我在LinearLayout内有一些TextView,如果我修改透明度,TextView也会变得透明。 - user2137817
请仔细阅读我的先前评论。您需要添加一个ImageView来容纳图像,并在其上方放置TextViews。 - arshu
这不是我真正想要的,但接近了,谢谢。 - user2137817
然而,这会导致在 Api 6 上崩溃,并且在 Api 4.4 上也出现了崩溃。你遇到过这个问题吗? - Samir

30

将此内容用于您的布局中

android:alpha="0.5"

0.0 表示完全透明,1.0 表示完全不透明。


为什么我要花半个小时找到这样的答案呢?太简单而有效了,不错! - Sindri Þór
好像没坚持多久..在构建时失败了,错误信息为:“不允许使用字符串类型(在'alpha'处的值为'0.5f')。” - Sindri Þór
1
只需像这样使用:android:alpha="0.5" - Patosai

14

让你的LinearLayout背景透明:

android:background="@android:color/transparent"

如果您想让布局部分透明,也许这个链接可以帮助您:如何创建部分不可见的视图

编辑:如果您的布局有一个背景图片,那么我认为您可以设置LinearLayout的alpha,并通过代码来控制它而不改变您的背景。要使用背景图片将布局设置为透明:

android:alpha=""

alpha property of the view, as a value between 0 (completely 
transparent) and 1 (completely opaque)

5

在您的layout.xml文件中,将顶部线性布局的背景设置为

background="#CCFFFFFF"。

这里可以通过改变alpha模式来增加透明度,"CC"表示更高的透明度。

("00"表示完全透明)

https://dev59.com/EG445IYBdhLWcg3wO31u#4990254


3
"我很晚了,但这对其他人可能有帮助……创建像这样的xml文件…"
  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    >

    <LinearLayout
        android:id="@+id/l1"
        android:layout_width="190dp"
        android:layout_height="match_parent"
        android:background="#234234"
        android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClickNext"
        android:text="Next >" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/l2"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:alpha=".05"
        android:orientation="vertical" >
        </LinearLayout>

</LinearLayout>

现在,请前往您的清单文件并添加这一行...
<activity android:name=".Activity" 
         android:theme="@android:style/Theme.Translucent">

享受中...


3

像这样设置背景颜色:

android:background="#00ffffff"

1

将主题添加到需要透明的活动的清单文件中。

    <activity android:name=".YourActivity"
     android:theme="@android:style/Theme.Translucent">
   </activity>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接