安卓更改材质高程阴影颜色
2022-09-01 01:48:22
是否可以更改由 xml 高程属性生成的阴影颜色?我希望通过代码动态更改阴影。
是否可以更改由 xml 高程属性生成的阴影颜色?我希望通过代码动态更改阴影。
我知道这个问题已经很老了,可能作者不再需要答案了。我会把它留在这里,这样其他人就可以找到它。
棒棒糖的提升系统不支持彩色阴影。
但是,如果您需要彩色阴影,则可以使用Carbon获得它们。它是材质设计的一种支持库,在最新版本中,有一个选项可以更改阴影颜色。Behance上有很多漂亮的设计,具有彩色阴影,我认为尽管Android中缺乏这样的功能,但拥有它们会很好。重要的是要注意,彩色阴影在所有Android版本上都得到了模拟,在5.0 +上也是如此。
https://github.com/ZieIony/Carbon
下面的图像和代码可以在Carbon的示例中找到。
法典:
<carbon.widget.LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<carbon.widget.Button
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_margin="@dimen/carbon_padding"
android:background="#ffffff"
app:carbon_cornerRadius="2dp"
app:carbon_elevation="8dp"
app:carbon_elevationShadowColor="@color/carbon_red_700"/>
</carbon.widget.LinearLayout>
“CardView”:
<carbon.widget.LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<carbon.widget.LinearLayout
android:layout_width="match_parent"
android:layout_height="160dp"
android:layout_margin="@dimen/carbon_margin"
android:background="#ffffff"
app:carbon_cornerRadius="2dp"
app:carbon_elevation="8dp"
app:carbon_elevationShadowColor="@color/carbon_red_700">
<carbon.widget.ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:src="@drawable/test_image"/>
<carbon.widget.TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="test text"/>
</carbon.widget.LinearLayout>
</carbon.widget.LinearLayout>
起始 API 28 (Pie) View#setOutlineAmbientShadowColor(int color) 和 View#setOutlineSpotShadowColor(int color) 在 View 类中可用。
如果在视图上使用立面,则可以使用这两种方法来更改阴影的颜色。