我想要的是两个布局在布局中具有相同的大小,并在外部布局的中间有一个ImageView。
我做了类似的事情:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#EEEEEE"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="#FF0000"
android:orientation="vertical"
android:layout_weight="1">
</LinearLayout>
<RelativeLayout
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_centerInParent="true">
<ImageView
android:id="@+id/ac_imageView_profile"
android:layout_width="90dp"
android:layout_height="90dp"
android:scaleType="centerCrop"
android:layout_centerHorizontal="true"
android:adjustViewBounds="true" />
<ProgressBar
android:id="@+id/ac_myprofileimg_progressbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="#84B5FE"
android:orientation="vertical"
android:layout_weight="1">
</LinearLayout>
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:0)
首先,不推荐使用fill_parent
,您必须使用match_parent
。然后你必须一步一步地做。
您可以使用LinearLayout
放置两个彩色矩形。如果您希望它们具有相同的高度,则只需为子项的android:layout_weight
属性设置相同的值。
如果要在此布局的中间添加ImageView
,则需要将LinearLayout
包裹在RelativeLayout
内。
最后,您现在可以使用ImageView
属性在RelativeLayout的中间添加android:layout_centerInParent
。
以下示例应该为您提供所期望的内容:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="{first color}" />
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="{second color (yellow)}" />
</LinearLayout>
<ImageView
android:width="wrap_content"
android:height="wrap_content"
android:layout_centerInParent="true"
... />
</RelativeLayout>
答案 1 :(得分:0)
您可以尝试以下结构:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout>
// both the relative layouts are here
</RelativeLayout>
<ImageView>
</FrameLayout>
答案 2 :(得分:0)
动态分配高度
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics ();
display.getMetrics(outMetrics);
float height = outMetrics.heightPixels /getResources().getDisplayMetrics().density;
height/=2;
imageView1.getLayoutParams().height=(int)height;
imageView2.getLayoutParams().height=(int)height;
对于一个使用alignparenttop = true而对第二个使用alignparentbottom = true 而对于中间人。 。添加center_horizontal = true和center_vertical = true