Mat*_*tko 1 android android-layout
我试图使用以下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>
Run Code Online (Sandbox Code Playgroud)
我按照此处的说明http://sandipchitale.blogspot.co.uk/2010/05/linearlayout-gravity-and-layoutgravity.html
唯一的区别是我在这里使用ImageView而不是Button:
<?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>
Run Code Online (Sandbox Code Playgroud)
这把按钮放在预期的位置:

不幸的是,在帖子顶部的我的XML中并非如此.ImageView没有放在底部,因为参考XML中的Button是.

任何想法为什么会发生?
小智 5
尝试使用 RelativeLayout 而不是 LinearLayout 并使用 parameter android:layout_alignParentBottom = "true"。
编辑:尝试将 layout_height 和 layout_width 作为 wrap_content 用于保存 ImageView 的 LinearLayout。
或者可能是您正在使用的图像上方和下方有额外的空间。
更新:
问题在于图像的大小。它比屏幕尺寸大得多。我建议您使用以下代码以编程方式读取设备的屏幕尺寸:
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
Run Code Online (Sandbox Code Playgroud)
并以编程方式设置 imageView 的高度和宽度,如下所示:
image_view.getLayoutParams().height = height - 50;
image_view.getLayoutParams().width = width - 50;
Run Code Online (Sandbox Code Playgroud)
您应该在ImageView中更改设置,以便在ImageView上进行精确设置android:scaleType="fitEnd".
其他答案似乎是解决方法,包括您自己的答案.这不是布局的问题,但是当图像和屏幕的尺寸不相似时,在ImageView内部加载图像的位置(即宽度/高度比非常不同).默认情况下,它会将图像加载到ImageView的中间.
| 归档时间: |
|
| 查看次数: |
15892 次 |
| 最近记录: |