【问题标题】:Android images are confusing meAndroid图像让我感到困惑
【发布时间】:2011-08-27 17:26:03
【问题描述】:

我在使用 android 图片时遇到了很多问题。

我只是不知道要制作什么尺寸以及如何使它们正常工作。

我来自 iphone 开发,所以在 iphone dev 中我会启动 photoshop,创建一个 640*960 的画布并设计我的应用程序。

然后,我将剪切生成的设计并导出所有扩展名为@2x 的图像。然后我将其缩放 0.5 并导出为标准显示设备。

这很容易理解……这很容易做到。如果我想让图像占据屏幕的一半,我会将其设为高分辨率 320 像素宽,标准分辨率设为 160 像素宽。

不幸的是,android 不是这样工作的。我想不通。没有“简单的转换”,因为它是。不知道android中一个屏幕有多少dip

所以我最终使用了wrap_content 之类的东西,这无济于事,因为不同的屏幕只会显示不同分辨率的图像。我遇到了很多关于图像和各种外边距的问题!

如何在android中正确使用图片?

【问题讨论】:

  • 如果你描述你想做什么可能会有所帮助;)。你读懂了吗?:developer.android.com/guide/practices/screens_support.html
  • 基本上你必须在正确的文件夹中保留正确的图标。 This is a good tool to work with.
  • Reno - 感谢该链接 - 它看起来非常有用。我已经申请了安卓聊天室,感谢您的提示(也感谢您在那里分享我的问题)。 Mibollma 我正在尝试制作一个应用程序!大声笑,这不是很具体的事情,只是在不同屏幕上具有不同尺寸的图像......在我的设计中很小的图像突然在屏幕上变得很大等等......

标签: android android-image


【解决方案1】:

Android 开发更像是 Web 开发。更具体地说,它更像是 Web 开发,您可以在其中允许页面随浏览器窗口调整大小。 iPhone 开发更像是网络开发,您使用固定的页面宽度并且可以控制大量支出。

在 Android 中,屏幕几乎可以是任何尺寸,几乎可以是任何方向,但最关键的是各种分辨率中的任何一种。就像@2x 一样,但您需要更多变体,因为 Android 更加多样化。这是不同的,但你会习惯的。

这个页面是官方文档re graphics: http://developer.android.com/guide/practices/screens_support.html

但实际上我发现这个页面更实用: http://coding.smashingmagazine.com/2011/06/30/designing-for-android/

目标是当您在屏幕上显示特定物理尺寸的图像时,它应该在任何设备上显示几乎相同的尺寸,无论是糟糕的低分辨率设备还是超高分辨率设备(例如那些即将推出)。

DIP 是一种与物理尺寸而非像素相关的度量。如果你说某个东西是 100dips 宽,那么无论设备的分辨率如何,它在所有 Android 设备上的物理尺寸都差不多。

您可以将高分辨率图形粘贴到 drawable-xhdpi 文件夹中,但 Android 必须动态调整大小,因此您可能会看到性能和质量问题。这就是为什么你必须提供一个集合。

请记住,在设计时,事物会伸展。不要尝试将所有东西都修复为相同的大小,它不会起作用。因此,例如对于按钮,您可能希望使用可拉伸图像(阅读 9-patch 图像),以便应用根据不同的屏幕尺寸调整大小。

此外,您还可以使用 Roman Nurik 的 FANTASTIC 图标工作室工具创建许多您需要的图标(菜单、通知等) http://android-ui-utils.googlecode.com/hg/asset-studio/dist/index.html

例如,如果您需要一个应用程序启动器图标,只需给他的工具一个位图,然后它会修剪、缩放、填充、添加 3D 按钮效果(发光和阴影),然后为 xhdpi 喷出版本, hdpi, mdpi, ldpi。它为我在每个项目上节省了几天的时间。

祝你好运!

【讨论】:

  • 第二个链接非常有帮助,真的让我对此事大开眼界。 :) 所以我猜它的一个应用程序在所有设备上看起来都会略有不同。它是关于 fill_parents 和 wrap_contents 的,以确保无论设备如何都适合。
  • 是的。理解这一切需要时间,但只要坚持下去,你就会明白,因为你解决了每一个问题。如果您假设大多数东西会自动调整大小(9patch 图像很重要),那么它会变得更容易理解。请记住,对于您使用的每个图像,您都需要不同大小的 xhdpi、hdpi、mdpi 和 ldpi 版本,通过这样做,您可以在任何屏幕上将其视为图像具有固定的物理大小。
  • Thomas,我添加了另一个工具链接,该工具对创建许多您需要的图像非常有用
【解决方案2】:

看看这两个链接:firstsecond

与 iPhone 不同,Android 手机具有不同的尺寸和密度。对于 android 开发,您需要明确您的目标手机(密度方面)以使用硬编码值。 如果你想让它通用,最好使用 wrap_content。我不知道你有什么问题。你在说什么利润?可以指定吗?

【讨论】:

  • 我一遍又一遍地阅读了这些内容,虽然它们很有帮助,但它们仍然模棱两可,让我对自己在做什么更加确定。
猜你喜欢
  • 1970-01-01
  • 2020-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多