我无法使用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之前使用什么。
答案 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"
/>
注意:我使用较高的高程值只是为了更容易检查它是否正常工作。你可以根据需要调整它。