如何改变 android 高程阴影的方向?
How to change direction of android elevation shadow?
我有 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>
据我所知,你不会自己改变阴影。在 Androids Material 设计中,阴影由您提升元素的量自动确定。
45 degrees altitude and 90 degrees angle
你真的不应该使用不同的阴影,因为它会破坏 material 设计的整体一致性。那么你唯一应该做的就是提升你的元素。也许您应该重新阅读 Material 设计指南:https://material.io/guidelines/material-design/environment.html#environment-light-shadow
我认为这个方法是最好的解决方案:谢谢,Alexander Bilchuk。
解法:
您可以使用简单视图及其背景在视图上方绘制自己的阴影:
<View
android:layout_width="match_parent"
android:layout_height="4dp"
android:layout_above="@id/bottom_bar"
android:background="@drawable/shadow"/>
drawable/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>
此外,如果使用这种方法,则不会存在兼容性问题。
视图投影可以在 x 和 y 方向上平移或缩放等,方法是更改视图的轮廓提供者,如 post 中所述。
我有 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>
据我所知,你不会自己改变阴影。在 Androids Material 设计中,阴影由您提升元素的量自动确定。
45 degrees altitude and 90 degrees angle
你真的不应该使用不同的阴影,因为它会破坏 material 设计的整体一致性。那么你唯一应该做的就是提升你的元素。也许您应该重新阅读 Material 设计指南:https://material.io/guidelines/material-design/environment.html#environment-light-shadow
我认为这个方法是最好的解决方案:
解法:
您可以使用简单视图及其背景在视图上方绘制自己的阴影:
<View
android:layout_width="match_parent"
android:layout_height="4dp"
android:layout_above="@id/bottom_bar"
android:background="@drawable/shadow"/>
drawable/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>
此外,如果使用这种方法,则不会存在兼容性问题。
视图投影可以在 x 和 y 方向上平移或缩放等,方法是更改视图的轮廓提供者,如 post 中所述。