Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android背景图像大于容器_Android_Background_Imageview_Crop_Gravity - Fatal编程技术网

Android背景图像大于容器

Android背景图像大于容器,android,background,imageview,crop,gravity,Android,Background,Imageview,Crop,Gravity,我们开始开发来自iOS开发的Android应用程序,但在处理背景图像时遇到了困难 我们有一个1024 x 1200的背景图像,我们希望它水平居中,顶部对齐。我们不希望图像被缩放,但希望图像溢出/剪辑,以便它正确地位于视图中。类似于CSS背景位置的效果:顶部居中 我们尝试了几种方法,但总是得到缩放图像。setScaleType()、setAdjustViewBounds()、通过LayoutParams设置重力以及其他各种方法的组合都没有成功。我们现在有点纠结于下一步该做什么 我们的想法是,我们可

我们开始开发来自iOS开发的Android应用程序,但在处理背景图像时遇到了困难

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

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

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

Craig创建一个图层列表:

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


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

这可能无法解决您的问题,但如果您在
背景
属性中设置了图像,则scaleType将不起作用。如果要使用它们,您需要一个
ImageView
,图像设置在
src
属性中。基本上,您需要的是一个ImageView,scaletype设置为centercrop,top | center(水平)作为布局重力。