Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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 防止ImageView将视图推离屏幕_Android_Android Layout_Imageview_Android Imageview - Fatal编程技术网

Android 防止ImageView将视图推离屏幕

Android 防止ImageView将视图推离屏幕,android,android-layout,imageview,android-imageview,Android,Android Layout,Imageview,Android Imageview,我有一个线性布局,其中包含一个imageview和另一个线性布局,它是屏幕上的底部栏。我在我的项目中的其他地方使用了底部栏,我认为这不是问题所在 问题是imageview占据了整个屏幕。图像本身没有,但视图有。我似乎无法理解这一点。正如您在我的xml中所看到的,我没有为图像视图使用fill_parent,我已经尝试了图像的所有可能的scaleType 有什么建议吗?如果有帮助的话,我正在构建Android API 8 编辑:我已经更改了下面的xml,以便您可以完全使用我编写的内容。(这是我在图像

我有一个线性布局,其中包含一个imageview和另一个线性布局,它是屏幕上的底部栏。我在我的项目中的其他地方使用了底部栏,我认为这不是问题所在

问题是imageview占据了整个屏幕。图像本身没有,但视图有。我似乎无法理解这一点。正如您在我的xml中所看到的,我没有为图像视图使用fill_parent,我已经尝试了图像的所有可能的scaleType

有什么建议吗?如果有帮助的话,我正在构建Android API 8

编辑:我已经更改了下面的xml,以便您可以完全使用我编写的内容。(这是我在图像视图中使用的图像:)



(很抱歉,没有足够的声誉来发布实际图片)

我认为问题可能是您使用的图像比屏幕大,因此ImageView将其高度设置为可用空间的高度,以最适合该图像,没有空间放置任何其他内容

此外,如果希望底部栏始终可见,最好使用RelativeLayout,如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/Main" 
    android:orientation="vertical" >
    <LinearLayout   
        android:id="@+id/bottom_bar"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom"
        android:layout_alignParentBottom="true"
        android:orientation="vertical" >
        <include layout="@layout/browse_bottom_bar" />
    </LinearLayout>

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@id/bottom_bar"
        android:src="@drawable/quote_sample_img" />
</RelativeLayout>

如果将android:layout\u weight=“1.0”添加到ImageView中,事情似乎会顺利进行

(我不确定到底发生了什么,布局算法的顺序如何,因此无法解释原因。)


我有一个非常类似的问题,发布在

除非指定adjustviewbounds=“true”,否则图像视图在缩放图像后似乎不会收缩


但是,正如你从我自己的帖子中看到的,这并不是完整的答案:imageview可能仍然会将下面的项目从显示器上推下,或者如果图像太大,则会侵入它们的空间,我正在努力解决这个问题。

这是图像中的换行符内容-源文件可能太高

在ImageView中使用此选项可使图像区域在缩放后重置为图像的新大小:

android:adjustViewBounds="true"
我还将更改ImageView的高度,使其填满屏幕,并强制您的栏始终位于底部:

android:layout_height="0dip" // faster than match_parent for weight
android:layout_weight="1.0"

您是否尝试过使用layout_weight属性在imageview布局和第二个linearlayout之间的空间量之间设置固定比例?事情进展如何?这样做很有效,但不是我所期望的那样。我只是玩弄了一大堆参数,当我给图像一个layout_weight=“.8”和linearlayout,以及一个layout_weight“.2”时,底部的栏出现了。奇怪的是,我给线性布局的权重越大,它看起来就越少。那对我来说毫无意义。知道为什么会出现这种情况吗?我很担心使用它,尽管它似乎有效,因为我必须再添加几个视图,我不知道它是否能继续工作,或者它是否能在多个屏幕上工作。有没有办法上传你的整个项目?我确实试着让主xml代码在新的EclipseAndroid项目中工作,但我只是不断地遇到我无法修复的错误(我也是这方面的新手…)。如果我能看到你的源代码并打开它,那么我也许能够修复它。是的,主要的事情是我在我的项目的其他地方创建的东西。我编辑了我的文章只是为了删除任何依赖项。您应该能够使用它并看到问题所在。谢谢你的帮助。我之前使用过relativelayout,但我最初认为我使用不当,导致了我发布的问题。我切换到线性布局,问题仍然存在,所以我发布了这个。我稍后再转回来。在调整大小之前,源图像最初比屏幕大是正确的。但是在调整了imageview的大小之后,它仍然占据了整个屏幕。是的,这修复了它,但是它对我来说仍然没有任何意义。布局权重1不应该使imageview尽可能大,而不是更小吗?布局权重设置为1.0并不总是表示视图将尽可能大。这取决于我们为设计中的其他视图指定的权重。查看这篇文章了解更多细节,这是我生命中的一个小时,因为这没有意义!Kai在下面的帖子中包含了似乎缺失的链接。。。首先声明固定页脚,然后声明以imageview结尾的顶部部分。如果你的布局比这更复杂的话,上帝会帮助你的。。。
android:adjustViewBounds="true"
android:layout_height="0dip" // faster than match_parent for weight
android:layout_weight="1.0"