android - 摆脱 Android Studio 上启动器图标的 Image Asset 边距
问题描述
我正在努力摆脱 Android Studio 生成的 ic 启动器图标周围的额外边距,但没有运气。我知道这是 Google 的材料设计趋势之一。不过,这些图标在丑陋的设备上太小了。
我已经用谷歌搜索了大约三个小时,我能找到的唯一解决方法是生成具有透明背景的剪贴画,然后用 Photoshop 制作带有圆角的背景,这非常慢。
还有比这更好的解决方案吗?
谢谢你。
解决方案
根据设计自适应图标博客文章,在drawable
目录中创建的用于 API 26+ 设备的自适应图标图像遵循自适应图标大小和形状:
您会注意到,虽然整个图像必须为 108dp x 108dp,但实际可视区域仅为中心 72dp - 只有在拖动图标时才能看到外边缘(视差效果可能会导致它可见)。
Pixel Launcher 以及许多第三方启动器都强制在 API 26+ 设备上使用自适应图标,因此您在设计时应始终牢记这一要求 - 例如,在 Pixel Launcher 的情况下,替代方案是将您的白色圆圈内的非自适应图标。
因此,您应该始终设计您的图标,使背景层占据全尺寸,但您放置在该背景层顶部的任何前景图像都应包含在该中心区域内。
您不能在不弄乱前景图像的情况下仅删除该边距,但是根据实施自适应图标后续博客文章,您可以通过将修剪后的图像放在 108dp x 108dp 的透明可绘制对象中来删除前景周围的任何白色多余部分通过使用InsetDrawable
.
<!-- Center a 54x54dp image in the 108x108dp size of adaptive icons -->
<inset
android:drawable="@mipmap/ic_fg_trimmed"
android:insetLeft="25%"
android:insetTop="25%"
android:insetRight="25%"
android:insetBottom="25%" />
尽管这必须是您ic_launcher_foreground
事后需要自己对图像执行的操作。
在大多数情况下,更好的解决方案是使用矢量可绘制图像作为 Android Studio Image Asset 向导的输入 - 这将确保它们始终具有正确的大小并且不会占用 APK 中的任何额外空间。
推荐阅读
- react-native - 如何使用 reactnativevectoricon 中的图标而不使用库中的图标,如源代码中的“icon: require("./src/utils/icon.png")”?
- flutter - 我在使用 Memu andriod 模拟器的 VS 代码中使用 Flutter 但出现错误
- python - 我怎样才能获得信心并摆脱这些数据(关联规则)
- c# - 如何通过标签存储 XML 部分
- android - Android 媒体播放器滞后
- python - 如何从 Jaeger 中提取跟踪数据
- javascript - DOM 元素到图像仅生成白色图像
- android - 未捕获的 DOMException:无法从“SourceBuffer”读取“缓冲”属性:此 SourceBuffer 已从父媒体源中删除
- c++ - C++ 是否保证具有单个平凡成员的“平凡”结构具有相同的二进制布局?
- c# - 根据条件在列表视图中隐藏特定的 GridViewColumn