60

我正在构建一个针对 iPhone/iPad 和 Android 手机的移动应用程序。该应用程序将涉及用户拍照并上传到我的服务器,稍后用户将能够在他们的移动设备上查看这些照片(尽管不一定是他们自己的照片,因此 Android 用户可能正在查看使用 iPhone 拍摄的照片)。

我应该保存哪些尺寸的照片才能涵盖大多数用例?iPad 为 1.333 W/H,大多数手机为 1.5 或 1.333 W/H,少数为 1.666 W/H。具体来说:

iPad:1024x768,iPad3:2048x1536,iPhone和其他一些手机:960x640、480x320、800x480。

为了使其易于管理,我需要确定一些特定的图像尺寸并以这些尺寸保存照片。我并不是真的在技术方面寻求帮助。我可以在服务器端进行图像缩放等。我正在寻找有关图像大小的建议/最佳实践/经验教训,然后再深入构建它。

  • 我应该以哪种尺寸保存照片以涵盖大多数用例?
  • 您是否建议在上传到服务器之前进行任何客户端缩放以节省传输时间(例如缩小 2048x1536 iPad 照片),还是我应该始终传输原件?
  • 我应该如何处理不兼容的图像尺寸(例如在 Android 设备上显示使用 iPad 拍摄的照片)?我应该在发送到客户端之前在我的服务器上预先剪切这些图像,还是应该让客户端电话处理图像大小调整?
  • 还有UI的问题。除了照片之外,页面上还有其他内容,可能是一两个按钮用于导航。我应该在保存图片时保持相同纵横比的同时选择小于全屏尺寸的东西吗?

我知道其中一些问题没有一个答案,而且答案是相对的,但我想得到一些意见。谢谢。

4

2 回答 2

14

对于 Android,我认为最好的起点是这里,它包含很多信息,包括标准屏幕尺寸以及如何在保持最佳质量的同时显示图像。

http://developer.android.com/guide/practices/screens_support.html

我还建议在您的服务器上进行尽可能多的图像处理。由于内存限制和碎片,图像在 Android 上使用起来很痛苦。两部手机可能会存储以不同方向以相同方式拍摄的照片,并且没有简单的方法来处理旋转,但可以做到(谢天谢地,我还没有遇到过错误记录 Exif 数据的手机,但我不会如果它们存在会感到惊讶......)。您对手机的依赖越多,由于制造商在周围放置包装器或自定义其处理媒体的方式,您出错的机会就越大。

至于如何显示,理想情况下,如果您的后端已经在进行一系列不同的调整大小,您可以在请求图像时包括您的屏幕密度,并根据开发指南发送最佳尺寸。如果您想将差异保持在最低限度,至少支持手机的中密度或高密度,以及平板电脑的超高密度。

只是我的两分钱,我相信你会有很多意见。祝你好运。

于 2012-05-14T15:18:18.207 回答
8

我没有完整的答案给你,但我确实有一些想法......

1)我建议在上传之前减小图像大小。如果我正在使用您的应用程序并且我必须上传一张 4 兆的照片,那么每次我想使用您的应用程序时,我可能都会通过。随着我们向前迈进,我们在照相手机方面取得了更好的技术;诺基亚发布了一款 41 兆像素的相机,我猜它会产生相当大的图像。必须下载 4-6 MB 图像的用户也不是一个好主意。只是从用户的角度的一些想法。

2)我不会剪切图像。您不一定知道图像的哪些部分不重要,那么您怎么知道在哪里裁剪呢?让手机相应地调整图片大小,并依靠放大图片的能力来查看更大尺寸的东西。

3)您可以尝试制作一个隐藏按钮的 UI。如果您有一些非常简单的事情(例如前进或后退),您可以依靠手势控制(滑动)在您的应用程序中移动。您可以实现滑动抽屉和菜单,在使用时暂时占用空间,但在您想查看主要内容(图片,在您的情况下)时给您空间。我通常发现隐藏按钮效果不佳,人们似乎想要/搜索让他们导航的按钮,但 Android 库仅适用于菜单 + 滑动,所以谁真正知道。

于 2012-05-14T15:16:04.567 回答