Android ImageView缩放类型与可绘制文件夹

Android ImageView缩放类型与可绘制文件夹,android,image,drawable,scaling,image-scaling,Android,Image,Drawable,Scaling,Image Scaling,我认为不同的可绘制文件夹(例如,可绘制xhdpi,可绘制hdpi)的目的是为了避免不必要的重新校准以节省资源 但是,如果我想将图像放入ImageView,我必须选择适当的缩放类型才能正确显示图像 根据文件: 居中 显示视图中居中的图像,不进行缩放 中心作物 缩放图像,使x和y维度都更大 大于或等于视图,同时保持图像纵横比; 裁剪图像中超出视图大小的任何部分;中心 视图中的图像 中心内 缩放图像以适合视图内部,同时保持图像 纵横比。如果图像已经小于视图,则 与中心相同 健身中心 缩放图像以适合视图

我认为不同的可绘制文件夹(例如,
可绘制xhdpi
可绘制hdpi
)的目的是为了避免不必要的重新校准以节省资源

但是,如果我想将图像放入
ImageView
,我必须选择适当的
缩放类型才能正确显示图像

根据文件:

居中

显示视图中居中的图像,不进行缩放

中心作物

缩放图像,使x和y维度都更大 大于或等于视图,同时保持图像纵横比; 裁剪图像中超出视图大小的任何部分;中心 视图中的图像

中心内

缩放图像以适合视图内部,同时保持图像 纵横比。如果图像已经小于视图,则 与中心相同

健身中心

缩放图像以适合视图内部,同时保持图像 纵横比。至少有一个轴与视图完全匹配,并且 结果在视图中居中

fitStart

与fitCenter相同,但与视图的左上角对齐

菲登德

与fitCenter相同,但与视图的右下角对齐

菲特西

缩放x和y尺寸以精确匹配视图大小;不 保持图像的纵横比

如您所见,
居中
外的所有缩放类型重新缩放图像

我的第一个问题:

如果图像视图重新缩放图像,为什么要提供这么多不同的分辨率

我的第二个问题:


我可以对任何图像使用
drawable nodpi
文件夹,然后使用类似
fitCenter
的缩放类型,以便图像始终具有正确的大小。为什么我应该使用除
drawable Nodepi
之外的任何文件夹?

不同的资源文件夹主要用于图标,因为在大多数情况下,缩放会导致模糊,并允许帮助解决下一个问题:

  • 使用比例因子(如1,5)缩放图标后,图标可能会 看起来很模糊
  • 它允许您为低分辨率设备使用简单图像(细节较少)。您可以在图标72x72上绘制比24x24多得多的内容
  • 此外,提供不同分辨率的图像还允许您设置 具有wrap_内容大小的ImageView,不计算精确的 大小以dps为单位
  • 我几乎所有的内容都使用xx hdpi文件夹的高分辨率资源,android将自动为ldpi、hdpi、mdpi等扩展它。例如,当您在hdpi设备上使用xx hdpi文件夹中的图标时,它将缩小两倍。您可以在此处找到更多信息:


    我只对图标使用不同分辨率的文件夹

    不同的资源文件夹主要用于图标,因为在大多数情况下,缩放会导致模糊,并允许帮助解决下一个问题:

  • 使用比例因子(如1,5)缩放图标后,图标可能会 看起来很模糊
  • 它允许您为低分辨率设备使用简单图像(细节较少)。您可以在图标72x72上绘制比24x24多得多的内容
  • 此外,提供不同分辨率的图像还允许您设置 具有wrap_内容大小的ImageView,不计算精确的 大小以dps为单位
  • 我几乎所有的内容都使用xx hdpi文件夹的高分辨率资源,android将自动为ldpi、hdpi、mdpi等扩展它。例如,当您在hdpi设备上使用xx hdpi文件夹中的图标时,它将缩小两倍。您可以在此处找到更多信息:


    我只对图标使用不同分辨率的文件夹

    这是屏幕密度或dpi(每英寸点数)的问题;它是屏幕上某个区域内的像素数

    一般来说,如果你是初学者,你可以扔掉这些文件夹,只使用一个(
    drawable
    ),没问题,但最好正确使用不同的
    drawable
    mipmap
    文件夹,以便制作一个高质量的Android应用程序,在不同屏幕大小的设备上看起来很棒

    现在总结一下,ImageView.ScaleType只设置资源的边界以适应视图的边界,而使用不同的
    可绘制的
    文件夹允许Android为我们的设备选择具有最佳密度的近距离资源,从而为我们的应用程序带来更好的外观


    在这本书和这本书中阅读更多关于这个主题的内容。

    这是屏幕密度或dpi(每英寸点数)的问题;它是屏幕上某个区域内的像素数

    一般来说,如果你是初学者,你可以扔掉这些文件夹,只使用一个(
    drawable
    ),没问题,但最好正确使用不同的
    drawable
    mipmap
    文件夹,以便制作一个高质量的Android应用程序,在不同屏幕大小的设备上看起来很棒

    现在总结一下,ImageView.ScaleType只设置资源的边界以适应视图的边界,而使用不同的
    可绘制的
    文件夹允许Android为我们的设备选择具有最佳密度的近距离资源,从而为我们的应用程序带来更好的外观


    请在“此”和“此”中阅读有关此主题的更多信息。

    如果不提供任何scaleMode,图像将被裁剪。试着把你的图像放到
    可绘制的nodpi
    中,看看在不同的屏幕密度下会发生什么。“裁剪”到底是什么意思?它与“中心裁剪”缩放模式类似吗?缩放是因为屏幕大小不同而发生的。多个可绘制文件夹用于不同的屏幕分辨率。“裁剪”表示剪切。而且没有居中。从左上角开始,按图像视图的大小进行剪切