从服务器检索图片到 Android 设备时处理不同的屏幕尺寸

Posted

技术标签:

【中文标题】从服务器检索图片到 Android 设备时处理不同的屏幕尺寸【英文标题】:Deal with the different screen sizes when retrieving picture from server to Android devices 【发布时间】:2014-07-10 22:46:37 【问题描述】:

我正在开发一个可以动态处理启动画面的应用。问题是,我们只能在服务器上上传一张背景图片,所以在服务器端我需要准备这张图片以适应不同类型的设备。

我似乎无法找到一个准确的图像分辨率列表(以 px 为单位),可以或多或少地涵盖所有 Android 设备(与我的 iPhone 相比,分辨率通常看起来非常低例如,通常不包括平板电脑)。

是否有人拥有此信息,以便我可以将服务器设置为从我上传的唯一图片生成不同的分辨率,然后我可以检索适合我当前正在使用的设备的任何内容(通过传递有关尺寸的相关信息)?

提前致谢。

【问题讨论】:

您得到您设备的精确HeightWidth 并将其发送到您的服务器并根据分辨率生成图像 【参考方案1】:

从你这边有可能吗?

1.) 首先获取设备大小并进行服务器调用,传递设备类型/大小/标志或一些标识符。

2.) 将一些标识符参数从您端传递到服务器端,服务器端根据设备识别您的图像。

3.) 服务器端设置相同的多张图片。

4.) 根据您的设备大小设置响应。

【讨论】:

【参考方案2】:

我认为您只需要 1 张图片,这是您的应用可能显示的最大分辨率, 然后您可以在 dp 中将 ImageView 的 layout_width 和 layout_height 指定为您喜欢的大小(或者如果它是飞溅,我认为它是 fill_parent) 我认为它会自动调整图像大小 顺便说一句,你是如何获取图像背景的? 我做了同样的事情,我把最大的分辨率放在服务器中,使用 UrlImageViewHelper 获取图像,它会自动调整大小,在不同的布局中很好 所以只有一张图像用于启动画面背景? 我认为更好的方法是将图像放入您的包中,9patch 图像可以很好地支持不同的屏幕尺寸


或者,如果你真的坚持要从服务器获取它(你有不同分辨率的相同图像), - 根据屏幕尺寸以编程方式指定您喜欢的宽度和高度 - 围绕它(因为不同的屏幕尺寸可能会产生不同的像素尺寸),并将宽度和高度添加到 image_url 字符串( (例如:http://myServer.com/images/myImage300x600.jpg、http://myServer.com/images/myImage500x800.jpg 等) - 确保您的服务器具有所需的图像名称 但由于设备屏幕尺寸的多样性,我认为图像仍然需要调整自身大小才能填满容器

【讨论】:

以上是关于从服务器检索图片到 Android 设备时处理不同的屏幕尺寸的主要内容,如果未能解决你的问题,请参考以下文章

如何从 HttpClient 检索照片?

为不同的设备生成服务器端图像?

android获取联系人图片、姓名和手机号码

如何从一个 android 设备检索 GPS 位置并将其实时提供给另一台 android 设备 [关闭]

使用 Smack 从 2 个不同的 android 设备登录到同一个 jabber 帐户

Android - 如何从多个设备检测同一用户?