当前位置: 首页 > 知识库问答 >
问题:

移动应用程序的图像大小最佳实践

周翰
2023-03-14

我正在构建一个针对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的问题。页面上除了照片之外还有其他东西,可能有一两个导航按钮。我应该选择比全屏更小的尺寸,同时在保存图片时保持相同的长宽比吗?

我知道有些问题没有一个答案,答案是相对的,但我想征求一些意见。谢谢。

共有2个答案

濮阳浩穰
2023-03-14

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

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

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

3) 您可以尝试创建一个隐藏按钮的UI。如果你有一些非常简单的东西(比如向前或向后),你可以依靠手势控制(滑动)来移动你的应用程序。您可以实现滑动抽屉和菜单,这些抽屉和菜单在使用时会暂时占用空间,但在您想查看主要内容(图片,在您的情况下)时会给您回空间。我通常会发现隐藏按钮并不能很好地工作,人们似乎想要/搜索让他们导航的按钮,但Android gallery只适用于菜单滑动,所以谁知道呢。

姚晋
2023-03-14

对于Android,我认为您最好从这里开始,它有很多信息,包括标准屏幕大小以及如何在保持图像质量的同时显示图像。

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

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

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

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

 类似资料:
  • 我刚开始使用JFace/SWT进行GUI编程。在我使用普通SWT窗口(http://help.eclipse.org/indigo/index.jsp?topic=%2forg.eclipse.wb.ercp.doc.user%2fhtml%2fwizards%2fercp%2fapplication_window.html)之前,我第一次尝试了JFace应用程序窗口。 现在我要设置这个窗口的最小

  • 这是一个关于移动设备的图像及其大小的问题。 所以假设我想要一个全手机屏幕的图像。我这里假设屏幕是320*480,这似乎是一致的。 当我在Photoshop或MS Paint中制作图像时,我可以选择像素/英寸(好吧,也许不是油漆,但你明白我的漂移)。默认值是72像素/英寸,这是要一直保持的吗? 一些设备具有更高的dpi——我认为“默认”是160 dpi——因此,对于一个240dpi的设备,为了显示我

  • 我正在构建一个全栈 Web 应用程序。我正在使用 Vue.js作为前端,Spring启动用于后端,将 PostgreSQL docker 容器用于数据库。但是,我很好奇,一旦我完成了Web应用程序的开发,我应该在哪里以及如何部署它。 我在下面列出了我的问题: < li >我应该在哪里部署我的全栈应用程序,如AWS、GCP、Hiroku或任何其他平台。 < li >部署我的前端、后端和数据库的最佳实

  • 问题内容: 我正在尝试创建一个响应式的图像网格(带有描述),当将鼠标悬停在该网格上时,它将具有颜色叠加层(仅图像而不是文本)。由于图像的响应高度,我遇到了一个问题,即覆盖层覆盖了所有内容,而不仅仅是图像。 有什么办法可以解决这个问题? 为了方便理解,我在这里重新创建了该问题:http : //jsfiddle.net/r8rFc/ 这是我的HTML: 而我的CSS: 提前致谢! 问题答案: 向包含

  • 所以我有一个Web应用程序,其中前端是用React编写的,后端是用NodeJs/NestJ编写的,并且处于部署应用程序的阶段。我有一个运行Ubuntu的Linode服务器,我最初的想法是安装Docker 那么,这是设置应用程序的好方法吗?这种设置有什么利弊吗?除了因为需要服务器数量而定价之外?或者还有其他更有益的选择吗? 提前致谢。

  • 我正在为游戏开发AI,我想使用MinMax算法和Alpha-Beta修剪。 我对它的工作原理有一个粗略的想法,但我仍然无法从头开始编写代码,所以我花了最近两天的时间在网上寻找某种伪代码。 我的问题是,我在网上找到的每个伪代码似乎都是基于找到最佳移动的值,而我需要返回最佳移动本身而不是数字。 我现在的代码是基于这个伪代码(源代码) 如您所见,这段代码返回一个数字,我想这是使一切正常工作所必需的(因为