如何在应用程序中支持多张具有多张图片的设备?

时间:2013-09-25 11:13:21

标签: android drawable

我看到很多像这样的问题,并阅读了很多文档,但我仍然不确定什么是正确的方法。我有500张照片的应用程序,首先我的做法是将每张照片缩放5次,每个ldpi,mdpi,hdpi,xhdpi和xxhdpi的像素大小。但是,在这样做之后,应用程序变得比应有的大得多,而且由于你只能将50MB的.apk上传到市场,我发现自己处于陷阱。

我找到了几个可以在这里做的选项,但不确定哪个选项是合适的:

  • 为设备上的每个密度设置多个布局,并使用不同的dp进行缩放
  • 为每个设备制作多个.apk文件,每个文件都有不同的密度(不过,谷歌正在强调这个选项,只有当你真的无法做到这一点时才会这样做 - 为什么会这样?这对于我,因为我已经为每个密度准备了照片)
  • 制作多张图片并将其放在一个.apk中 - 这对我不起作用,因为.apk太大了
  • 制作适合MDPI设备的图片,将它们放入“可绘制”状态,它们会自动调整大小以适应其他设备,对于体积较小的设备则会更小 - 这会产生问题,因为图片会从MDPI调整为其他设备更大的dpi设备,图片模糊。

所以,无论如何,处理这个问题的正确方法是遵循第一个选项,我是对的吗?我应该拍摄xxhdpi图片(所以它们总是从最佳图片缩放),把它们变成drawable-nodpi?但是,我在ImageButtons上缩放时遇到了一些问题。 请告诉我如何正确使用它。

3 个答案:

答案 0 :(得分:1)

我的做法是只使用一个apk来保持应用程序简单易用的开发和发布。

只使用一个drawable,越高越好。这取决于你(市场)可以承受的最终apk尺寸。

可能这个问题会有所帮助:

Only use XHDPI drawables in Android app?

答案 1 :(得分:0)

Loki答案的补充。您可以解决小型设备上的不良性能,从而为图像创建缓存文件夹。根据设备的密度,在设备第一次加载图像时缩小图像,将其保存到缓存文件夹,然后下次使用缓存的图像。

如果您在后台批量处理中进行此操作,则获得奖励!

答案 2 :(得分:0)

我不知道但是这可以作为应用程序的更新来完成。您下载一个简单的vanilla应用程序,提示用户升级,或者只是自动执行。听起来像谷歌需要改进的东西。当我下载一个应用程序时,我只需要一个应用程序,一种语言,一个设备,如微软的心态