setElevation不显示阴影

时间:2017-06-19 19:42:34

标签: java android

我无法使用setElevation绘制阴影。我不想使用绘图来执行此操作。这是代码:
这是父母 Page.xml

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/background">

    <LinearLayout
        android:id="@+id/pp_cont_new_list"
        android:background="@color/background"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:gravity="center_horizontal"
        android:orientation="vertical"
        android:paddingLeft="30dp"
        android:paddingRight="30dp"
        android:paddingTop="5dp">
    </LinearLayout>

</LinearLayout>

这里我建立了一个简单的布局 PersonalPage.Java

final LinearLayout ROOT = (LinearLayout) findViewById( R.Id.pp_cont_new_list);
final LinearLayout LL = new LinearLayout(context); //Container
LL.setLayoutParams (new LinearLayout.LayoutParams(
    Generic.PARAM_MP, //eq. match_parent
    (int) context.getResources ().getDimension (R.dimen.bt_preview_list_height)
));
LL.setBackgroundResource (R.drawable.background_new_list);
LL.setElevation (5f);
LL.setClickable (true);

ROOT.addView( LL );
/*
 * other code inner the container
 */

这个背景
background_new_list.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="10dp"/>
            <solid android:color="@color/background"/>
        </shape>
    </item>
    <item>
        <ripple android:color="@color/textColorAlpha"/>
    </item>
</layer-list>

我想解释一下我的错误 而且我也想知道在LOLLIPOP之前使用什么。

3 个答案:

答案 0 :(得分:1)

设置高程对于pre-lolipop

不起作用

您可以创建一个具有阴影的自定义按钮图像,并将其设置为按钮背景。或任何视图的背景以产生阴影效果

答案 1 :(得分:0)

使用ViewCompat.setElevation(your_view(in your case LL), elevation_amount); 但对于Lollipop之前的设备,这将不起作用, 对于您可能使用的前Lollipop案例:

android:background="@android:drawable/dialog_holo_light_frame"

答案 2 :(得分:0)

如果你不介意在xml中做事,这是有效的。我试了一下。我没有你正在使用的背景颜色值,所以我使用了不同的颜色作为父版面。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#E8E8E8"
android:paddingBottom="20dp"
android:clipToPadding="false"
android:translationZ="6dp">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="150dp"
    android:background="@drawable/background_new_list"
    android:clipToPadding="false"
    android:elevation="25dp"
    android:orientation="vertical"
     />

注意:我使用较高的高程值只是为了更容易检查它是否正常工作。你可以根据需要调整它。