首页 文章

为什么要提供各种密度的多个drawable?

提问于
浏览
3

我的应用程序支持从ldpi到xhdpi的各种屏幕密度 . 它包含一些需要在所有密度上正确显示的drawable(图像) . 我想知道有多少可绘制的分辨率实际上是必要的,考虑到Android运行时在找不到适当密度的资源时正在扩展资源 .

如果您只提供mdpi drawables,它们将在hdpi / xhdpi(模糊)上放大,并在ldpi屏幕上缩小 .

但是,如果仅提供xhdi资源,则它们将在所有低密度屏幕上缩小 . 按比例缩小不会使它们模糊,它们看起来会很好 .

那么为什么还要为xhdpi提供其他密度的drawable?

4 回答

  • 0

    使用预分割的drawables有几个原因:

    缩小到较低分辨率会占用资源(CPU时间,内存和更快耗尽电池),尤其是如果您有大量图像,这可能是不受欢迎的 .

    缩小大图像可能会导致质量低于使用'pre-tuned'较小的图像 . 特别是如果您的图像基于矢量原始图像 . 或者它们包含非常细的线条或细节,由于缩放而会丢失 .
    例如:

    original image
    成为
    scaled image

    有关这些图像的来源,请参阅here以及有关缩放工件的更多信息 .

    • 在较低分辨率下,图像像素较大(或图像变小),因此可能需要删除图像的某些方面以使其清晰/易懂 .
  • 1

    您对扩展资源的假设是不正确的 . 一些大图像在按比例缩小时仍然看起来不错,但这不是一般情况 . 如果图像具有平滑过渡而没有渐变,则可以很好地缩小图像 . 例如,包含尖锐过渡或包含文本的图像在较低分辨率下看起来会很难看 .

  • 8

    如果您自己进行缩放,那么与自动缩放相比,结果可能会更好,如果准备好drawable,则应用程序不会消耗用于缩放的资源 .

  • 0

    没有必要但是例如,您可以针对不同的屏幕分辨率使用不同的布局和不同的drawable . 你可以选择这样做 . 如果您和您的用户对结果感到满意,那就很酷 . 如果您需要不同密度和分辨率的不同行为,那么此功能非常有用 .

相关问题