1 android android-layout android-styles android-shape
我正在使用线性布局的高程属性,但阴影太亮。我只需要一个较暗的阴影用于线性布局。
我添加android:spotShadowAlpha到我的styles.xml. 它有效,但不仅仅适用于线性布局。每个视图都有一个较暗的阴影。
样式.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="android:ambientShadowAlpha">0</item>
<item name="android:spotShadowAlpha">0.55 </item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
线性布局在activity_main.xml
<LinearLayout
android:id="@+id/linl"
android:layout_width="250dp"
android:layout_height="250dp"
android:layout_marginStart="55dp"
android:layout_marginTop="208dp"
android:layout_marginEnd="56dp"
android:layout_marginBottom="209dp"
android:background="@drawable/custom_buttom"
android:elevation="70dp"
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
背景@drawable/custom_buttom
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#FFFFFF"/>
<corners android:radius="999dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
免责声明:仅适用于 API 28 及以上版本
我知道这个问题有点老了,但我遇到了同样的问题。这家伙有一个很好的解决方案。本质上你设置android:ambientShadowAlpha和android:spotShadowAlpha到1。那么您可以使用SetOutlineAmbientShadowColor包含SetOutlineSpotShadowColoralpha 值的值来逐项设置它。对于其他所有内容,这些充当具有系统默认 alpha 值的默认阴影颜色:
<color name="defaultOutlineAmbientShadowColor">#0A000000</color> <color name="defaultOutlineSpotShadowColor">#30000000</color>
这些在 styles.xml 中设置:
<item name="android:ambientShadowAlpha">1</item> <item name="android:outlineAmbientShadowColor">@color/defaultOutlineAmbientShadowColor</item> <item name="android:spotShadowAlpha">1</item> <item name="android:outlineSpotShadowColor">@color/defaultOutlineSpotShadowColor</item>