2013-10-06 73 views
0

我试图把ImageView的布局上与下面的XML底部:在屏幕的底部把ImageView的

 <?xml version="1.0" encoding="utf-8"?> 
     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:orientation="vertical" 
      tools:context=".MainActivity" > 
      <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:background="#EEEEEE" 
       android:gravity="center" 
       android:orientation="horizontal" > 
       <ImageView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="bottom" 
        android:src="@drawable/photo" /> 
      </LinearLayout> 
     </LinearLayout> 

我下面这个网址的指示http://sandipchitale.blogspot.co.uk/2010/05/linearlayout-gravity-and-layoutgravity.html

唯一的区别是我使用的ImageView代替按钮如下:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="center" 
     android:orientation="horizontal" > 
     <Button 
      android:id="@+id/Button03" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="bottom" 
      android:text="bottom" > 
     </Button> 
    </LinearLayout> 
</LinearLayout> 

这使对预期的地方按钮:

enter image description here

不幸的是,这不是我在帖子顶部的XML中的情况。 ImageView不会像引用XML中的Button那样放置在底部。

enter image description here

任何想法,为什么出现这种情况?

回答

3

尝试使用RelativeLayout而不是LinearLayout并使用参数android:layout_alignParentBottom = "true"

编辑:尝试给你的ImageView的LinearLayout的layout_height和layout_width作为wrap_content。

或者您可能正在使用的图像在其上方和下方有额外的空间。

UPDATE:

的问题是与所述图像的大小。它比屏幕尺寸大得多。我建议你以编程方式阅读下面的代码在设备的屏幕尺寸:

DisplayMetrics displaymetrics = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
int height = displaymetrics.heightPixels; 
int width = displaymetrics.widthPixels; 

,并为ImageView的如下编程的高度和宽度:从宽度

image_view.getLayoutParams().height = height - 50; 
image_view.getLayoutParams().width = width - 50; 
+0

将_fill_parent_更改为_wrap_content_没有帮助。 – MobileDream

+0

图像没有任何额外的空间。 – MobileDream

+1

好的,你可以粘贴你正在使用的图像吗?我会尝试自己检查代码。 – 2013-10-06 17:48:18

0

你没有在imageview中包含android:layout_gravity =“bottom”这一行。

+0

我忘记了它在第一次粘贴的工作。我已经更新了这个问题 - 添加了_layout-gravity =“botttom”_行。但效果还是一样的。图像不在显示屏的底部。 – MobileDream

+2

您可以使用RelativeLayout来代替Linear,然后使用android:layout_alignParentBottom =“true”将图像对齐到底部。 – rachit

0

我已经调整照片尺寸2560到宽度270,最后ImageView进入底部。

2

其他答案似乎是变通办法,包括你自己的答案。这似乎不是布局的问题,但是当图像的尺寸与屏幕不相似时,ImageView中的图像将被加载,即宽高比是非常不同的。默认情况下,它会将图像加载到ImageView的中间。我认为正确的答案应该是您应该更改ImageView本身的设置,在您的ImageView上精确设置android:scaleType="fitEnd"

1

试试这里面相对布局

<ImageView 
    android:id="@+id/imageView9" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:adjustViewBounds="?attr/isLightTheme" 
    app:srcCompat="@drawable/client_app_footer" /> 

测试&预期