0

我有一个 iOS 应用程序,它在我尝试移植到 Android 的每个屏幕上使用独特的纹理背景(想想游戏标题屏幕或其他东西)。在 iOS 上,他们知道分辨率并围绕这些分辨率设计背景。显然,这在 Android 上是不可能的。

将纹理/不可重复背景放入适用于各种屏幕尺寸和纵横比的 Android 的最佳方法是什么?

到目前为止我想到的解决方案是:

  1. 适合最短尺寸并允许图像离开屏幕边缘以获得更大尺寸
  2. 将背景图像放大并居中,然后在分辨率小于图像时使其超出边缘
  3. 拉伸图像以使其适合(这很难看,我想避免它)
  4. 为每种分辨率创建不同版本的图像。(这似乎超出了该项目可能的范围。)

据我所知,在 Android 中,1. 和 2. 不可能开箱即用,因为背景图像设置视图的大小以匹配它们的大小(你不能告诉它只是延伸到边缘之外,请如果我错了,请纠正我)。

在这种情况下你会使用什么解决方案?

4

2 回答 2

1

为每种分辨率创建不同版本的图像。

您可能知道,Android 可以在具有不同分辨率和屏幕密度的各种设备上运行。要完全兼容所有这些需要一些图形工作;您需要针对每种可能的屏幕密度(在本例中为分辨率)的资源。

有关完整的详细信息,请参阅Android 开发人员文档中的Supporting Multiple Screens

除非在您的开发过程中出现严重错误,否则您应该.psd在创建这些资源时使用原始文件(例如 )。

于 2012-08-10T02:12:39.533 回答
1
  1. 使用 (match_parent) ImageView 来模拟背景图像。(通过调整imageview的比例类型可以得到第1,2点的结果) http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

  2. 使用 9-patch 图像。您可以指定可以拉伸图像的哪个部分。对于您的情况,我建议为您的图像添加一个小的“边距”,并使用 9-patch 使其可拉伸。只有边距会被拉伸,保持图像的纵横比。 安卓开发者9补丁

于 2012-08-10T02:15:14.103 回答