我想知道如何使用RelativeLayout将一个View居中放置在两个其他视图之间(或者在一个视图和父边之间)。例如,如果我有以下…
如何使用RelativeLayout将Button在ImageView和屏幕底部垂直居中?我在寻找一个解决方案...
我正试图在XML布局中完成这一任务(而不是编程)。
taor4pac1#
您可以使用以下选项:
<RelativeLayout android:layout_below="@id/theImageView" android:align_parentBottom="true" android:layout_width="match_parent" android:layout_height="200dp" > <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:onClick="onClickButton" android:textSize="20sp" android:text="Go"/> </RelativeLayout>
8oomwypt2#
不幸的是,没有简单的方法来做到这一点。你可以嵌套布局,或者在运行时做。最简单的方法是嵌套布局:
<LinearLayout android:width="match_parent" android:height="match_parent" android:orientation="vertical"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/my_top_image"/> <RelativeLayout android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="@string/my_button_label"/> </RelativeLayout> </LinearLayout>
这会将图像放在顶部。在其下方,RelativeLayout上的layout_height=0和layout_weight=1属性会导致它占用所有剩余空间。然后您可以将按钮置于RelativeLayout的中心。您可以在按钮上使用填充来使其达到您想要的大小。
RelativeLayout
layout_height=0
layout_weight=1
zaq34kh63#
使用下面的XML代码,它会解决你的问题.
<RelativeLayout 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" > <LinearLayout android:id="@+id/mLlayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ImageView android:id="@+id/mImgView1" android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_weight="1" android:src="@drawable/ic_launcher" /> <RelativeLayout android:layout_width="fill_parent" android:layout_height="match_parent" android:layout_weight="2" > <Button android:id="@+id/Btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="Dipak" /> </RelativeLayout> </LinearLayout> </RelativeLayout>
f4t66c6m4#
在XML文件中使用此android:layout_centerInParent=“true”..
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:weightSum="1.0" > <RelativeLayout android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="0.8" android:background="#00ff00" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" /> </RelativeLayout> <RelativeLayout android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="0.2" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="Button" /> </RelativeLayout> </LinearLayout>
cig3rfwq5#
@Gus你可以在两个其他视图之间创建中心视图...这不是确切的,你必须尝试这种方式....
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" > <LinearLayout android:id="@+id/linearLayout1" android:layout_width="120dp" android:layout_height="120dp" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:background="#00ccFF" android:orientation="horizontal" > </LinearLayout> <LinearLayout android:layout_width="59dp" android:layout_height="59dp" android:layout_alignRight="@+id/linearLayout1" android:layout_alignTop="@+id/linearLayout1" android:layout_marginRight="-21dp" android:layout_marginTop="-21dp" android:background="#FFccFF" android:orientation="vertical" > </LinearLayout> </RelativeLayout>
nnt7mjpx6#
我认为你只需要像平常一样对齐imageview,然后使用layout_below对齐按钮,不需要硬编码,也不需要使用嵌套视图,在按钮上使用**android:gravity=“center”**就可以了
<RelativeLayout android:layout_below="@id/theImageView" android:align_parentBottom="true" android:layout_width="match_parent" android:layout_height="200dp" > <ImageView android:id="@+id/imgview" android:layout_width="match_parentmat" android:layout_height="wrap_content" /> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/imgview" android:gravity="center" android:onClick="onClickButton" android:textSize="20sp" android:text="Go"/> </RelativeLayout>
kse8i1jr7#
类似地,如果您希望使用垂直条绘制信号电平,包括其中一些垂直条之间的不可见间距,则可以使用以下方法:
<item android:top="35dp" android:left="0dp" android:right="110dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/holo_blue_dark"/> <size android:height="10dp" android:width="10dp"/> </shape> </item> <item android:top="35dp" android:left="10dp" android:right="100dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/transparent"/> <size android:height="20dp" android:width="10dp"/> </shape> </item> <item android:top="30dp" android:left="20dp" android:right="90dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/holo_blue_bright"/> <size android:height="30dp" android:width="10dp"/> </shape> </item> <item android:top="25dp" android:left="30dp" android:right="80dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/holo_blue_dark"/> <size android:height="40dp" android:width="10dp"/> </shape> </item> <item android:top="25dp" android:left="40dp" android:right="70dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/transparent"/> <size android:height="40dp" android:width="10dp"/> </shape> </item> <item android:top="20dp" android:left="50dp" android:right="60dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/holo_blue_bright"/> <size android:height="40dp" android:width="10dp"/> </shape> </item> <item android:top="15dp" android:left="60dp" android:right="50dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/holo_blue_dark"/> <size android:height="40dp" android:width="10dp"/> </shape> </item> <item android:top="15dp" android:left="70dp" android:right="40dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/transparent"/> <size android:height="40dp" android:width="10dp"/> </shape> </item> <item android:top="10dp" android:left="80dp" android:right="30dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/holo_blue_bright"/> <size android:height="40dp" android:width="10dp"/> </shape> </item> <item android:top="5dp" android:left="90dp" android:right="20dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/holo_blue_dark"/> <size android:height="40dp" android:width="10dp"/> </shape> </item> <item android:top="5dp" android:left="100dp" android:right="10dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/transparent"/> <size android:height="45dp" android:width="10dp"/> </shape> </item> <item android:top="0dp" android:left="110dp" android:right="0dp"> <shape android:shape="rectangle"> <solid android:color="@android:color/holo_blue_dark"/> <size android:height="50dp" android:width="10dp"/> </shape> </item>
jhdbpxl98#
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ImageView android:id="@+id/imageView1" android:layout_width="300dp" android:layout_height="300dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="20dp" android:src="@drawable/wood" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/imageView1" android:layout_below="@+id/imageView1" android:layout_marginLeft="101dp" android:layout_marginTop="53dp" android:text="Image Button" /> </RelativeLayout>
8条答案
按热度按时间taor4pac1#
您可以使用以下选项:
8oomwypt2#
不幸的是,没有简单的方法来做到这一点。你可以嵌套布局,或者在运行时做。最简单的方法是嵌套布局:
这会将图像放在顶部。在其下方,
RelativeLayout
上的layout_height=0
和layout_weight=1
属性会导致它占用所有剩余空间。然后您可以将按钮置于RelativeLayout
的中心。您可以在按钮上使用填充来使其达到您想要的大小。zaq34kh63#
使用下面的XML代码,它会解决你的问题.
f4t66c6m4#
在XML文件中使用此android:layout_centerInParent=“true”..
cig3rfwq5#
@Gus你可以在两个其他视图之间创建中心视图...这不是确切的,你必须尝试这种方式....
nnt7mjpx6#
我认为你只需要像平常一样对齐imageview,然后使用layout_below对齐按钮,不需要硬编码,也不需要使用嵌套视图,在按钮上使用**android:gravity=“center”**就可以了
kse8i1jr7#
类似地,如果您希望使用垂直条绘制信号电平,包括其中一些垂直条之间的不可见间距,则可以使用以下方法:
jhdbpxl98#