2017-08-14 61 views
0

我想给我的EditText一点透明效果。当我第一次使用透明度值设置EditText背景时,它可以正常工作,但是当我给出高程值以获得阴影效果时,它就不合作。Android上的阴影效果与仰角视图不起作用的透明背景

这里是布局的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时不起作用。

+0

这是一个重复,以https://stackoverflow.com/questions/27477371/android-elevation-not-showing -a-shadow –

回答

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>

+0

到目前为止,这是我想要的最接近的答案,但我认为应该给根布局的背景赋予alpha值,因为如果布局本身不透明,那么也不是孩子。 – user3576118

2

尝试包装你的Search RelativeLayoutCardview

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

使用CardView也会给出好的结果。但我也必须做一些调整。现在唯一的问题是CardView会造成奇怪的填充效果。谢谢 – user3576118