Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么要为各种密度提供多个可拉丝?_Android_Drawable_Screen Resolution - Fatal编程技术网

Android 为什么要为各种密度提供多个可拉丝?

Android 为什么要为各种密度提供多个可拉丝?,android,drawable,screen-resolution,Android,Drawable,Screen Resolution,我的应用程序支持从ldpi到xhdpi的各种屏幕密度。它包含一些需要在所有密度上正确显示的绘图(图像)。 考虑到Android运行时在无法找到合适密度的资源时正在扩展资源,我想知道实际需要提供多少不同分辨率的Drawable 如果您只提供mdpi绘图,它们将在hdpi/xhdpi(模糊)上放大,在ldpi屏幕上缩小 但是,如果您只提供xhdi资源,那么它们将在所有低密度屏幕上按比例缩小。缩小比例不会使它们变得模糊,它们看起来会很好 那么,为什么还要为xhdpi以外的其他密度提供可拉伸材料呢?使用

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

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

但是,如果您只提供xhdi资源,那么它们将在所有低密度屏幕上按比例缩小。缩小比例不会使它们变得模糊,它们看起来会很好


那么,为什么还要为xhdpi以外的其他密度提供可拉伸材料呢?

使用预标定可拉伸材料有几个原因:

  • 缩小到较低的分辨率会占用资源(CPU时间、内存,而且会更快地消耗电池),特别是如果您有很多图像,这可能是不希望的

  • 与使用“预调整”的较小图像相比,缩小较大图像可能会导致质量下降。尤其是如果您的图像是基于矢量原始图像。或者,它们包含非常细的线条或细节,这些线条或细节在缩放时会丢失。
    例如:
    变成
    有关这些图像的来源以及有关缩放瑕疵的更多信息,请参见

  • 在较低分辨率下,图像像素较大(或图像变小),因此可能需要删除图像的某些方面以保持清晰/可理解


  • 您关于扩展资源的假设是不正确的。一些大图像在缩小后看起来仍然很好看,但这不是一般情况。如果图像具有平滑过渡且没有渐变,则可以很好地缩小。例如,包含急剧变化或包含文本的图像在较低分辨率下看起来会很难看。

    如果您自己进行缩放,结果可能会比自动缩放更好,而且如果准备好了可绘制图像,您的应用程序不会消耗资源进行缩放。

    没有必要,但例如,对于不同的屏幕分辨率,可以使用具有不同绘图功能的不同布局。你可以选择这样做。如果你和你的用户对结果感到满意,那就冷静点。如果您需要不同密度和分辨率的不同行为,那么此功能非常有用。

    因为photoshop或类似的图像编辑程序比android basic scale Algorithmeah工作得更好,但这些瑕疵也会出现在photoshop中,不是吗?这取决于使用的缩放方法,您可以在照片编辑应用程序中手动选择。(专业)照片编辑应用程序往往具有高(er)质量的缩放方法(因此资源更密集)。最后但并非最不重要的一点是,当您手动缩放图像时,您可以看到结果,并且能够修复瑕疵(如果需要)。