具有透明度和标高的约束布局

问题描述 投票:0回答:2

我在 1 个约束布局中有 10 个 TextView。我想要实现的是让约束布局有一定的高度,使所有 10 个文本视图看起来基本上都在我的背景之上。但我想保留布局的背景以获取手机的背景,以便约束布局具有透明背景。有什么办法可以实现这个目标吗?

我在这里看到了有关此问题的各种帖子,但他们实际上希望布局是彩色的而不是透明的,这就是这个布局与他们的不同之处。

我已经尝试过使用矩形来处理形状的方法,但是只有当我使矩形可见......而不是透明时,立面的阴影才会出现。

<android.support.constraint.ConstraintLayout
    android:id="@+id/topBorder"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginRight="8dp"
    android:layout_marginLeft="8dp"
    app:layout_constraintTop_toBottomOf="@id/tvTitle">
<TextView
    android:id="@+id/tvIon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="5dp"
    android:text="@string/Ion"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    android:textStyle="bold"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toTopOf="parent"/>

<TextView
    android:id="@+id/tvIonResult"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginTop="5dp"
    android:text="@string/ResultPlaceHolder"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<TextView
    android:id="@+id/tvSn1_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="10dp"
    android:text="@string/sn1_1"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    android:textStyle="bold"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/tvIon" />

<TextView
    android:id="@+id/tvSn1_Result"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:text="@string/ResultPlaceHolder"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    app:layout_constraintRight_toRightOf="parent"
    android:layout_marginTop="10dp"
    app:layout_constraintTop_toBottomOf="@+id/tvIonResult" />

<TextView
    android:id="@+id/tvSn1_3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="10dp"
    android:text="@string/sn1_3"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    android:textStyle="bold"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/tvSn1_1" />

<TextView
    android:id="@+id/tvSn1_3_Result"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginTop="10dp"
    android:text="@string/ResultPlaceHolder"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/tvSn1_Result" />

<TextView
    android:id="@+id/tvSn2_1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginTop="10dp"
    android:text="@string/sn2_1"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    android:textStyle="bold"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/tvSn1_3" />

<TextView
    android:id="@+id/tvSn2_3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:text="@string/sn2_3"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    android:textStyle="bold"
    app:layout_constraintLeft_toLeftOf="parent"
    android:layout_marginTop="10dp"
    app:layout_constraintTop_toBottomOf="@+id/tvSn2_1" />

<TextView
    android:id="@+id/tvSn2_3_Result"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:text="@string/ResultPlaceHolder"
    android:textColor="@android:color/black"
    android:textSize="18sp"
    app:layout_constraintRight_toRightOf="parent"
    android:layout_marginTop="10dp"
    app:layout_constraintTop_toBottomOf="@+id/tvSn2_1_Result" />
<TextView
    android:id="@+id/tvSn2_1_Result"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginTop="10dp"
    android:text="@string/ResultPlaceHolder"
    android:textSize="18sp"
    android:textColor="@android:color/black"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/tvSn1_3_Result" />
    </android.support.constraint.ConstraintLayout>

这是我尝试过的 xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle" >
        <solid android:color="#00ffffff"/>
        <stroke android:color="#00000000"/>
    </shape>
</item>
</layer-list>
android android-layout android-constraintlayout android-elevation
2个回答
0
投票

如果你想在android上创建一个透明的activity 在您的 res/values/styles.xml

中添加以下样式

文件 这是一个完整的文件:

<style name="AppTheme.Transparent" paren="Theme.AppCompat.Light.DarkActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

然后在AndroidManifest.xml中:

    <activity
    android:name=".WhateverNameOfTheActivityIs"
    android:theme="@style/AppTheme.Transparent">
    </activity>

如果您不希望您的布局完全透明 然后在您的 layout 中将其添加到 ConstraintLayout

android:background="#80000000"

-2
投票

如果将此行添加到 Constraint Layout xml 中,它将变得透明:

android:background="@android:color/transparent"
。这将使背景透视并显示出下面或重叠的内容。

© www.soinside.com 2019 - 2024. All rights reserved.