今天我正在进行布局工作,我有一个问题,基本的我认为。
我有一个线性布局和一个imageview。我想显示图像和布局的左侧或右侧
我试过了,layout_gravity 准确地说,我希望在线性而不是相对或其他方面做到这一点非常重要。
感谢提前,一个精确的问题的屏幕
我与图像的线性
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="horizontal" >
<ImageView
android:id="@+id/Reboot"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="0.3"
android:layout_gravity="left"
android:src="@drawable/arreter" />
</LinearLayout>
答案 0 :(得分:1)
发生的事情是ImageView
是&#34;匹配&#34;父LinearLayout
的大小,因此无法将其与左侧或右侧对齐...在这种情况下它没有意义,因为视图无论如何都占用了整个空间。如果您确实想要将图像的效果可视化为其父级的左侧或右侧,则可以将layout_width
的{{1}}和layout_height
更改为{{1如下......
ImageView
另外,请注意我删除了wrap_content
属性,因为它对 <ImageView
android:id="@+id/Reboot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:src="@drawable/arreter" />
答案 1 :(得分:0)
使用此布局将ImageView与右/左对齐
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<ImageView
android:id="@+id/Reboot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left" // you can use right also. It works.
android:src="@drawable/ic_launcher" />
</LinearLayout>
您的LinearLayout方向为horizontal
,因此您可以使用top and bottom
将子视图放在android:layout_gravity
中。对于horizontal
LinearLayout right and left
不起作用,它们仅适用于vertical
LinearLayout。希望这些信息有用:)
答案 2 :(得分:0)
请尝试这种方式,希望这有助于您解决问题。
左侧
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/Reboot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_launcher" />
</LinearLayout>
到右侧
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right">
<ImageView
android:id="@+id/Reboot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:src="@drawable/ic_launcher" />
</LinearLayout>
答案 3 :(得分:0)
这个问题可能已经得到解答,但万一其他人发现了这个
Layout_gravity和Gravity是不同的。 Layout_gravity会更改其ViewGroup中项目的位置,而andorid:gravity会更改项目内容的位置。
对这种差异进行了很好的讨论 here
现在,由于LinearLayout的宽度和ImageView的宽度都是match_parent,因此layout_gravity不会起作用,因为它们的大小已经相同。 您需要将LinearLayout的宽度保持在 match_parent ,并将ImageView的宽度更改为 wrap_content 。然后,你可以使用 android:layout_gravity =&#34;对&#34;或 android:layout_gravity =&#34; left&#34;向右或向左移动图像。
注意:这也适用于上/下移动图像。只需更改ViewGroup&和ImageView的高度而不是宽度,然后使用android:layout_gravity =&#34; top&#34;或者android:layout_gravity =&#34; bottom&#34;