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_horizontal 设置为 layout_gravity。
【参考方案1】:
创建一个层列表:
http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList
在这个图层列表图层中,背景(所需颜色的实心矩形)和图像作为位图标记(此位图标记将防止缩放)并设置图像的所需重力。确保将图像作为图层列表中的最后一项,因为它从下到上水平。然后将此drawable设置为背景。
这将有一个彩色背景,以防由于某种原因图像没有填满整个屏幕,并且图像不会被缩放并且将遵循所需的重力属性。
【讨论】:
以上是关于Android背景图像大于容器的主要内容,如果未能解决你的问题,请参考以下文章