如何改变android高程阴影的方向?

时间:2015-09-20 09:25:32

标签: android xml shadow android-framelayout android-elevation

我有一个带有android:elevation =“4dp”的FrameLayout。这个高度的阴影朝下。我想改变阴影的方向。

<FrameLayout
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    android:elevation="10dp"
    android:layout_marginBottom="100dp"
    android:background="@color/ColorPrimary"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true">
</FrameLayout>

3 个答案:

答案 0 :(得分:8)

我认为这种方法是最佳解决方案:Android Bottom Navigation Bar with drop shadow谢谢Alexander Bilchuk。

<强>解决方案:

您可以使用简单的视图及其背景在视图上方绘制自己的阴影:

<View
    android:layout_width="match_parent"
    android:layout_height="4dp"
    android:layout_above="@id/bottom_bar"
    android:background="@drawable/shadow"/>

抽拉/ shadow.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:startColor="#1F000000"
        android:endColor="@android:color/transparent"
        android:angle="90" />
</shape>

此外,如果使用此方法,则不存在兼容性问题。

答案 1 :(得分:1)

就我而言,你不能自己改变阴影。在Androids Material Design中,阴影由您提升元素的数量自动确定。

根据这个问题https://graphicdesign.stackexchange.com/questions/80644/where-are-the-light-sources-located-in-material-design,光源是

  

45度高度和90度角

你真的不应该使用不同的阴影,因为它会破坏材料设计的整体一致性。那么你唯一应该做的就是提升你的元素。也许您应该重新阅读Material Design Guidlines:https://material.io/guidelines/material-design/environment.html#environment-light-shadow

答案 2 :(得分:0)

通过更改此post中详细介绍的视图的轮廓提供程序,可以平移视图投影或在x和y方向上缩放缩放比例。