Android背景图像大于容器

Posted

技术标签:

【中文标题】Android背景图像大于容器【英文标题】:Android Background Image larger than container 【发布时间】:2012-01-03 10:39:24 【问题描述】:

我们开始开发来自 ios 开发的 android 应用,但在处理背景图像时遇到了困难。

我们有一个 1024 x 1200 的背景图片,我们希望它在视图中水平居中并顶部对齐。我们不希望图像被缩放,但希望图像溢出/剪辑,以便它正确地位于视图中。类似于 CSS background-position: top center;

我们尝试了几种方法,但总是得到缩放的图像。 setScaleType()、setAdjustViewBounds()、通过 LayoutParams 设置重力和其他各种东西的组合都没有成功。我们现在有点不知道下一步该尝试什么。

我们的想法是,我们可以将单个图像用于多个屏幕尺寸,而无需调整图像大小(我们将有 2 或 3 个这些图像用于屏幕尺寸/密度范围)。这是为了减少我们需要覆盖所有 android 屏幕可能性的这些图像的数量。

克雷格

【问题讨论】:

它可能无法解决您的问题,但如果您在 background 属性中设置了图像,则 scaletypes 将不起作用。如果你想使用它们,你需要一个ImageView 并在src 属性中设置图像。 基本上,您需要的是一个 ImageView,scaletype 设置为 centercrop,top|center_horizo​​ntal 设置为 layout_gravity。 【参考方案1】:

创建一个层列表:

http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList

在这个图层列表图层中,背景(所需颜色的实心矩形)和图像作为位图标记(此位图标记将防止缩放)并设置图像的所需重力。确保将图像作为图层列表中的最后一项,因为它从下到上水平。然后将此drawable设置为背景。

这将有一个彩色背景,以防由于某种原因图像没有填满整个屏幕,并且图像不会被缩放并且将遵循所需的重力属性。

【讨论】:

以上是关于Android背景图像大于容器的主要内容,如果未能解决你的问题,请参考以下文章

拖动背景图像

缩放背景图像以包装布局内容

如何使带有自定义背景图像的按钮在Android中显示点击动画

Android自动旋转对话框但不是背景图像

CSS:如果大于窗口,则缩小背景图像,否则保持 100%

背景图像可以大于 div 本身吗?