【问题标题】:Working with images in android app development在 Android 应用程序开发中使用图像
【发布时间】:2012-10-22 23:34:51
【问题描述】:

这里是一个新手问题,但我无法在网上或我拥有的书中找到明确的答案。我正在设计一个与所有尺寸的 android 设备兼容的应用程序,我想在我的应用程序中显示图像。我了解 android 会自动缩放图像以适应所显示屏幕的分辨率。

我的问题是我在使用的图像中寻找什么?例如。我有一张 2418 x 2192 @ 240dpi 的图片。据我所知,这对于平板电脑等大屏幕来说应该是完美的。如果我将它放入我项目中的 xhdpi 图像文件夹中,它会被其他设备检测到并缩放以适应它们的尺寸/分辨率吗?我是否必须在 Photoshop 中创建此图像的 3 个不同版本并将其放入相关的 dpi 文件夹中?

我找不到很好的初学者教程,所以不知道我在做什么!

【问题讨论】:

    标签: android android-layout


    【解决方案1】:

    这是支持多种屏幕尺寸的最佳起点:

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

    简短的回答是,是的,您根据分辨率将图像放置在不同的目录中,Android 将根据设备的属性选择要使用的图像。您应该制作一组较小的图像,例如,用于 mdpi 和 hdpi。您不必“必须”这样做,如果您只是将图像放入 drawable 中,它可以按比例缩小,但这通常不是最好的方法。

    【讨论】:

    • 我一直在查看您指出的那个资源,并且我理解调整大小的必要性,但是除了 dpi 之外,没有关于图像应该具有哪些基本特征的指南。预算设备为 120dpi,高分辨率设备为 240dpi。然而,这些图像应该是什么尺寸?我就是想不通!
    • 这取决于您希望图像在屏幕上的大小。以下是文章中讨论它的相关部分:“要为不同的密度创建替代位图可绘制对象,您应该遵循四个通用密度之间的 3:4:6:8 缩放比例。例如,如果您有一个可绘制的位图中密度屏幕 48x48 像素(启动器图标的大小),所有不同的尺寸应为:低密度 36x36 中等密度 48x48 高密度 72x72 超高密度 96x96"
    • 现在这可能是一个愚蠢的问题,但如果我的原始图像是 48x48 并且我将其缩放到 96x96,它的质量会不会非常低?使用 96x96 图像开始并按比例缩小肯定会更好吗?
    • 另外,px = dp * (dpi / 160)。 XLarge 屏幕从 960dp x 720dp 开始,因此,如果您的目标设备是 240dpi X-large 屏幕并希望图像填满整个屏幕,则应为 960*(240/160) 和 720*(240/160),等于 1440 x 1080。我认为这是您所要求的根源。
    • 是的,您不会想放大 48x48 图像。您需要提供替代的 96x96 资源。
    【解决方案2】:

    这是您在几乎所有项目中都会遇到的问题,因为 Android 设备实在太多了。 This resource对我帮助很大。

    如果您只有一个文件夹中的资源,Android 会为您扩展它。不同的可绘制文件夹旨在允许开发人员以最小的努力提供适当缩放的图像。例如,除了“标准”mdpi 图像之外,您还需要提供 xhdpi 以使资源在高分辨率设备上看起来更好。即使您只提供了一个图像,该应用程序也可以在所有分辨率下正常工作(并且具有缩放图像)。但是,如果您提供了一个 xhdpi 可绘制对象,那么缩小所有这些会产生一些开销,尤其是对于图标,结果可能看起来不太好(甚至无法识别)。

    我通常为 mdpi 和 xhdpi 提供资产,但如果应用程序会在低分辨率设备上频繁使用,我也会提供 ldpi。如果可能,我会包括所有四个。

    注意:您提到的图像太大而无法包含在 UI 资源中,最好将其放置在资产中并根据请求加载。即使在 xhdpi 设备上,也必须按比例缩小。

    【讨论】:

    • 感谢您的回复。什么会被认为是“好形象”呢?我知道我引用的图像很大。我应该寻找什么尺寸?例如,如果我想要一张适合 Galaxy Tab 10.1' 平板电脑、Galaxy SII 和 HTC Wildfire 的图像。那将需要相同图像的 3 个不同版本,对吗?每个尺寸应该大约是多少?就像我说的,真的迷失了这些东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多