Android - 提供什么尺寸的图像?

Jos*_*osh 2 android image dpi scale image-resizing

我有一个Android应用程序,由API支持.对于此API用户可以上传照片.然后需要根据几个类别将这些照片缩放到几个不同的密度.

有没有推荐尺寸的任何地方或之前解决过这个问题的人?

我想我需要填写这个网格,知道调整图像大小(缩小)的大小(假设用户上传了一个4000x4000px图像,或其他什么):

Role / Screen | LDPI | MDPI | HDPI | XHDPI |
--------------------------------------------
Icon          |   ?  |   ?  |   ?  |   ?   |
--------------------------------------------
Thumbnail     |   ?  |   ?  |   ?  |   ?   |
--------------------------------------------
Full          |   ?  |   ?  |   ?  |   ?   | 
Run Code Online (Sandbox Code Playgroud)

然后,API将返回JSON响应,如下所示:

{
  resources: {
    icon: {
      ldpi:  "path",
      mdpi:  "path",
      hdpi:  "path",
      xhdpi: "path",
      raw: "path"
    },
    thumbnail: { ... },
    full: { ... }
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,客户端设备可以检查密度本身是什么,并使用适当的密钥路径来渲染图像.

我知道根据这个,"你应该遵循3:4:6:8缩放比率",但你怎么知道的图像应该用什么尺寸,缩放别人呢?

编辑:如果我的问题太多,这里是浓缩版本:我应该缩小用户上传的原始图像的大小,以便它们在各种各样的Android设备屏幕上看起来最好?

Dar*_*tle 6

如果我理解你所要求的东西,事情就比你制作它们容易.你已经理解了3:4:6:8的比例,所以这只是你或你的"权力"决定你想要多大的'icon','thumbnail'和'full'的问题.现实生活,然后做数学.

换句话说,缩略图没有"正确"的大小,只有正确的比例才能使它们在各种设备上看起来保持一致.想要一个缩略图有多大?

对于初学者,您可以使用与"Android"启动器图标相同的"icon"尺寸,将"thumbnail"的每个尺寸加倍,并使用"full"的平均全屏:

Role / Screen |  LDPI  |  MDPI  |  HDPI  |  XHDPI  |
----------------------------------------------------
Icon          |  36x36 |  48x48 |  72x72 |  96x96  |
----------------------------------------------------
Thumbnail     |  72x72 |  96x96 | 144x144| 192x192 |
----------------------------------------------------
Full          | 240x320|320x480 | 480x800| 720x1280| 
Run Code Online (Sandbox Code Playgroud)

如果您已经知道其中一个与您想要的不同,只需一次更改整行,保持3:4:6:8的比例.如果这看起来是一个好的开始,那么做一个模拟,看看它看起来如何.如果模拟显示缩略图应该更大一点,那么将它们全部推到一边,保持比例.

基本上它归结为:

  1. 选择一个测试设备并进行实验.
  2. 如果你有自己喜欢的尺码,请使用3:4:6:8的比例,以确保你的状态良好,看起来不错,并在"各种各样的Android设备屏幕"上运行良好.
  3. 在具有不同密度和屏幕尺寸的其他设备上进行测试,以确保您选择的尺寸和您设计的布局适应您仍会遇到的微小差异,即使在使用正确的比率后,也可以根据需要进行调整.

最后,我同意@Devunwired你不仅要看屏幕密度限定符,还要看屏幕尺寸.