的影子,我希望像影子一样,当你得到它:设置布局
android:background="@android:drawable/dialog_holo_light_frame"
有谁知道从这个源代码吗? 或者我如何才能做到这一点,我只有我的布局底部的阴影,而不是在它周围?
的影子,我希望像影子一样,当你得到它:设置布局
android:background="@android:drawable/dialog_holo_light_frame"
有谁知道从这个源代码吗? 或者我如何才能做到这一点,我只有我的布局底部的阴影,而不是在它周围?
有两路:
1)添加shadow.xml或shadow.png您绘制并在布局中使用它
shadow.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:bottom="8dp">
<shape android:shape="rectangle" >
<size android:height="1dp" />
<solid android:color="#43000000" />
</shape>
</item>
<item android:top="1dp">
<shape
android:dither="true"
android:shape="rectangle" >
<gradient
android:angle="270"
android:endColor="#00000000"
android:startColor="#10000000" />
<size android:height="8dp" />
</shape>
</item>
</layer-list>
例如your_layout.xml的:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="200dp"
android:background="@drawable/shadow"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFFFF"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"/>
</LinearLayout>
2)另一种方式是解决方法
大部分的阴影其实都在视图的下方,一个微妙的阴影也在上面。解决方法可能会使用非常高的值来提升高度,例如40dp:由于您的布局,底部部分将隐藏起来,而顶部将被展开并看起来像一个共同的阴影。
无论哪种情况,您都无法控制dp中的高程值,因为您无法确定您的影子与android:elevation = 4dp投射的影子相同。
这不是一个真正的影子 – David
另一个选项是设置card_view:cardElevation在cardview android – user7439667
从下面的链接可以使用9 Patch Shadow Generator作为布局的背景。
shadow.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- Drop Shadow Stack -->
<item>
<shape>
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<solid android:color="#00AAAAAA" />
<corners android:radius="3dp" />
</shape>
</item>
<item>
<shape>
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<solid android:color="#10AAAAAA" />
<corners android:radius="3dp" />
</shape>
</item>
<item>
<shape>
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<solid android:color="#20AAAAAA" />
<corners android:radius="3dp" />
</shape>
</item>
<item>
<shape>
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<solid android:color="#30AAAAAA" />
<corners android:radius="3dp" />
</shape>
</item>
<item>
<shape>
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<solid android:color="#50AAAAAA" />
<corners android:radius="3dp" />
</shape>
</item>
<!-- Background -->
<item>
<shape>
<solid android:color="@android:color/white" />
<corners android:radius="3dp" />
</shape>
</item>
以此为这样整个布局的背景:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/shadow"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent">
<---Describe your whole layout here>
</LinearLayout>
使用此背景提供一些底部填充。它会给你带来阴影效果 –
[This](https://github.com/android/platform_frameworks_base/blob/master/core/res/res/drawable-mdpi/dialog_full_holo_light.9.png)是你正在寻找的drawable 。 –