具有高程的视图上的Android阴影效果不适用于具有透明度的背景

时间:2017-08-14 06:55:49

标签: android transparency shadow

我试图给我的EditText一个透明的效果。当我第一次使用一点透明度值设置EditText背景时,它工作正常,但是当我给出高程值来获得阴影效果时,它只是不合作。

这是布局xml:

<RelativeLayout
    android:id="@+id/searchLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/toolBar"
    android:background="@drawable/search_layout_background"
    android:elevation="4dp"
    android:layout_margin="16dp">

    <EditText
        android:id="@+id/txtSearch"
        android:layout_width="match_parent"
        android:layout_height="36dp"
        android:background="@drawable/edit_text_border"
        android:inputType="textPersonName"
        android:imeOptions="actionSearch"
        android:paddingLeft="36dp"
        android:paddingRight="36dp"
        android:hint="Search"/>

    <ImageView
        android:id="@+id/btnSearch"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:padding="4dp"
        android:src="@drawable/ic_search"/>

    <ImageView
        android:id="@+id/btnClear"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:padding="4dp"
        android:layout_alignParentRight="true"
        android:src="@drawable/ic_clear"/>

</RelativeLayout>

这是search_layout_background.xml的可绘制资源:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <solid android:color="#FFFFFFFF" />
    <corners android:radius="4dp"/>

</shape>

你可以看到这里的alpha值是FF,但是当我稍微改变它时,即使只是变成FE,阴影就消失了。关于如何赋予阴影以及透明效果的任何想法?谢谢

PS:我刚刚发现了一些有趣的东西,如果我将RelativeLayout的背景值更改为#AAFFFFFF,它实际上是有效的。现在我可以使用带有阴影效果的透明视图。但是,如果我这样做,那么我的布局将不会有圆角效果,因为我把它放在我的search_layout_background.xml中。我不知道为什么它在使用search_layout_background.xml时不起作用。

2 个答案:

答案 0 :(得分:2)

Try wrapping your Search RelativeLayout inside a Cardview

 <CardView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_margin="16dp"
     app:cardElevation="6dp"
     android:layout_below="@+id/toolBar">

        <RelativeLayout
           android:id="@+id/searchLayout"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content">

               <EditText../>

               <ImageView../>

               <ImageView../>

        </RelativeLayout>
</CardView>

答案 1 :(得分:0)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/searchLayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/toolBar"
    android:layout_margin="16dp"
    android:background="#eaeaea"
    android:elevation="4dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:elevation="17dp">

        <EditText
            android:id="@+id/txtSearch"
            android:layout_width="match_parent"
            android:layout_height="36dp"
            android:background="#00444444"
            android:hint="Search"
            android:imeOptions="actionSearch"
            android:inputType="textPersonName"
            android:paddingLeft="36dp"
            android:paddingRight="36dp" />
    </LinearLayout>

    <ImageView
        android:id="@+id/btnSearch"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:padding="4dp"
        android:src="@drawable/ic_search" />

    <ImageView
        android:id="@+id/btnClear"
        android:layout_width="36dp"
        android:layout_height="36dp"
        android:layout_alignParentRight="true"
        android:padding="4dp"
        android:src="@drawable/ic_clear" />

</RelativeLayout>