【问题标题】:Is it possible to disable anti-aliasing on vector images?是否可以禁用矢量图像的抗锯齿功能?
【发布时间】:2023-03-19 22:01:01
【问题描述】:

在微光模式下的 Wear OS 上,应仅显示黑色或白色像素(无灰色)。对黑白图像进行抗锯齿会引入灰色像素。现在,可以通过编写 textView.paint.isAntiAlias = false (在 Kotlin 中)为 TextView 禁用抗锯齿,但似乎没有矢量图像的等价物。我尝试过的一件事是将android:antialias="false" 添加到图像XML 文件中,但似乎没有任何效果。

【问题讨论】:

  • 请注意,大多数较新的 Wear OS 设备在环境模式(以及灰度)下最多支持有限的调色板。是什么让您认为只能使用黑色或白色?
  • 当然,并不是你不能,但根据 Google 的说法,黑色和白色是最节能的显示颜色。灰人尤其不受欢迎。
  • 你有没有提到“特别不鼓励灰色”的地方?文档actually say:“使用有限的调色板”和“目标是使其 95% 的像素为黑色”。
  • This doc 说:“应避免使用灰色,因为任何色调都比任何色调的灰色或白色更省电。”
  • 与背景相关,而不是文本/图标中的别名。

标签: android wear-os


【解决方案1】:

我不认为有办法在 XML 中做到这一点。

就我个人而言,我只是在直接绘制到画布上时才这样做。在Paint 上设置setAntiAlias(false)(不记得我们最终是否也使用了setDither(false)setFilterBitmap(false))起到了作用。

您可以尝试使用DrawableWrapper 并在draw() 方法中进行必要的更改。不幸的是,这意味着您必须在代码中设置所有可绘制对象,但至少您仍然可以依赖ImageView

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 2012-12-13
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    相关资源
    最近更新 更多