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

时间:2017-11-04 18:29:52

标签: android android-layout android-constraintlayout android-elevation

我在1个Constraint Layout中有10个TextView。我想要实现的是让Constraint Layout有一些高度使得看起来所有10个textviews基本上都高于我的背景。但是我想保持我的布局背景以获取手机的背景,因此Constraint布局具有透明背景。我能以任何方式实现这一目标吗?

我在这里看到了各种关于此的帖子,但他们实际上希望布局着色并且不透明,这就是这个与他们不同的地方。

我已尝试使用矩形对形状进行操作,但只有当我使矩形可见时才会出现高程阴影....而且不透明。

<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>

2 个答案:

答案 0 :(得分:0)

如果将此行添加到约束布局xml中,它将变为透明:android:background="@android:color/transparent"。这将使背景透明并显示波纹管或重叠管。

答案 1 :(得分:0)

如果要在android上创建透明活动 在您的 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>

如果您不想要,将布局完全透明 然后在您的布局中将其添加到 ConstraintLayout

android:background="#80000000"