Android非重复纹理背景

时间:2012-08-10 01:50:52

标签: android image background

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

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

我到目前为止所考虑的解决方案是:

  1. 调整最短尺寸并允许图像离开屏幕边缘以获得更大的尺寸
  2. 使背景图像变大并使其居中,然后在分辨率小于图像时将其拉伸到边缘之外
  3. 将图像拉伸到恰当的位置(这很难看,我想避免使用它)
  4. 为每种分辨率创建不同版本的图像。 (这似乎超出了该项目可能的范围。)
  5. 据我所知,在Android中,1和2.不可能开箱即用,因为背景图像设置视图的大小以匹配它们的大小(你无法告诉它只是超出了如果我错了,请纠正我。)

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

2 个答案:

答案 0 :(得分:1)

  

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

您可能已经意识到,Android可以在各种分辨率和屏幕密度不同的设备上运行。要完全兼容所有这些需要一些图形工作;你需要每个可能的屏幕密度资源(在这种情况下,分辨率)。

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

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

答案 1 :(得分:1)

  1. 使用(match_parent)ImageView模拟背景图像。 (通过调整imageview的缩放类型,您可以得到第1,2点的结果) http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

  2. 使用9-patch图像。您可以指定图像的哪个部分可以拉伸。对于你的情况,我建议添加一个小的"边距"对你的形象,并使用9补丁使其可伸缩。只保留边距,保持图像的纵横比。 android developer 9-patch