为什么黑色无影“使用 Google Pay 购买”按钮变体与白色变体不匹配?

问题描述

在我的应用中使用 the official "Buy with Google Pay" assets 创建无阴影按钮时,黑色按钮比白色按钮具有更多的边距。

如下图所示,在夜间和白天模式下使用按钮时,差异很明显。

night and light mode google pay shadowless button

解决方法

这是因为 Google 提供的“影子”资产与“非影子”资产不一致。这可以通过比较 /app/[colour]/res/drawable-xhdpi/ 中的 9patch PNG 看出: comparing google pay 9patches

请注意,虽然每个的阴影图像是相同的,但 _no_shadow 变体不是。黑色资源的边缘有额外的边距(在 9patch 黑色边框之前),导致按钮外观略有不同。

虽然理想的解决方案是让 Google 更新提供的资产,但直接的解决方案是将提供的资产替换为没有边际的资产,如白色资产。我已经创建了一个已经有这种处理的集合。

要使用图像,请将每个图像保存在相应的 drawable-x 目录中作为 googlepay_button_no_shadow_background_image.9.png

密度 资产
MDPI MDPI
HDPI HDPI
XHDPI XHDPI
XXHDPI XXHDPI
XXXHDPI XXXHDPI