Android 环境阴影随着背景颜色变暗而减弱?
Android ambient shadow weakens as background color darkens?
所以,我有一个具有以下样式的 AppCompatButton:
<style name="InputButton">
<item name="android:background">@drawable/blur_state_list</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:fontFamily">@font/open_sans_semibold</item>
<item name="android:outlineAmbientShadowColor">?colorAmbient</item>
<item name="android:outlineSpotShadowColor">?colorAmbient</item>
<item name="android:textSize">16sp</item>
<item name="android:paddingStart">@dimen/spacing_large_4</item>
<item name="android:paddingEnd">@dimen/spacing_large_4</item>
<item name="android:paddingTop">@dimen/spacing_13dp</item>
<item name="android:paddingBottom">@dimen/spacing_13dp</item>
<item name="android:minHeight">0dp</item>
<item name="android:elevation">6dp</item>
背景drawable是这样完成的
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="?colorFragmentBackground" />
<corners android:radius="@dimen/input_spacing" />
</shape>
</item>
<item>
<selector>
<item android:state_enabled="false">
<shape android:shape="rectangle">
<solid android:color="?colorTextSecondary1" />
<corners android:radius="@dimen/input_spacing" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="#ffffff" />
<corners android:radius="@dimen/input_spacing" />
</shape>
</item>
</selector>
</item>
被波纹标签包围。所以不会让我 post 涟漪标签...
当背景颜色明亮时。 (白色、黄色等...),它投射出强烈的阴影:
但当底色变深时,阴影明显减弱:
有没有什么设置,我可以使用它来保持阴影强度而不管背景颜色如何?我试过 spotShadowAlpha 和 ambientShadowAlpha 都无济于事。
这是人类视觉对颜色的感知效果。
其实影子是一样的
正如 Ruslan 评论的那样,这似乎只是一种错觉。以下是并排的图像:
所以,我有一个具有以下样式的 AppCompatButton:
<style name="InputButton">
<item name="android:background">@drawable/blur_state_list</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:fontFamily">@font/open_sans_semibold</item>
<item name="android:outlineAmbientShadowColor">?colorAmbient</item>
<item name="android:outlineSpotShadowColor">?colorAmbient</item>
<item name="android:textSize">16sp</item>
<item name="android:paddingStart">@dimen/spacing_large_4</item>
<item name="android:paddingEnd">@dimen/spacing_large_4</item>
<item name="android:paddingTop">@dimen/spacing_13dp</item>
<item name="android:paddingBottom">@dimen/spacing_13dp</item>
<item name="android:minHeight">0dp</item>
<item name="android:elevation">6dp</item>
背景drawable是这样完成的
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="?colorFragmentBackground" />
<corners android:radius="@dimen/input_spacing" />
</shape>
</item>
<item>
<selector>
<item android:state_enabled="false">
<shape android:shape="rectangle">
<solid android:color="?colorTextSecondary1" />
<corners android:radius="@dimen/input_spacing" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="#ffffff" />
<corners android:radius="@dimen/input_spacing" />
</shape>
</item>
</selector>
</item>
被波纹标签包围。所以不会让我 post 涟漪标签...
当背景颜色明亮时。 (白色、黄色等...),它投射出强烈的阴影:
但当底色变深时,阴影明显减弱:
有没有什么设置,我可以使用它来保持阴影强度而不管背景颜色如何?我试过 spotShadowAlpha 和 ambientShadowAlpha 都无济于事。
这是人类视觉对颜色的感知效果。
其实影子是一样的
正如 Ruslan 评论的那样,这似乎只是一种错觉。以下是并排的图像: