Android:相对布局中心的东西在自己的空间

时间:2017-05-18 00:34:26

标签: android center relativelayout

我是Android新手,我想实现这样的目标,所有的东西都集中在自己的空间。

representative image

我有这段代码......我怎样才能改变它?为什么?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="15dp"
    tools:context="se.avatarcontrol.MainActivity">

    <TextView
        android:id="@+id/weather"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@id/light"
        android:layout_marginTop="15dp"
        android:text="RAINY" />

    <Button
        android:id="@+id/light"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="Light OFF" />

    <TextView
        android:id="@+id/frontText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/sideText"
        android:text="FrontView"/>

    <TextView
        android:id="@+id/sideText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/light"
        android:layout_marginTop="15dp"
        android:layout_alignParentRight="true"
        android:text="SideView" />


    <ImageView
        android:id="@+id/frontImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android: android:layout_below="@id/frontText"
        android:src="**somesource**" />

    <ImageView
        android:id="@+id/sideImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/sideText"
        android:layout_alignParentRight="true"
        android:src="**othersource**"/>

</RelativeLayout>

另一件事是我的ImageViews如何填充所有空间而不相互重叠?

1 个答案:

答案 0 :(得分:0)

请使用FrameLayout或LinearLayout,因为它比RelativeLayout轻。

要实现您想要的目标,您应该执行以下操作:

<?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="match_parent"
android:orientation="vertical">

<!-- Weather light Layout-->
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="3">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="2"
        android:src="@mipmap/ic_launcher_round" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:text="Light" />

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:weightSum="2">

    <!-- Front + Image Layout-->
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Front" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="Image" />

    </LinearLayout>

    <!-- Side + Image Layout-->
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:orientation="vertical">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="Side" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="Image" />


    </LinearLayout>


</LinearLayout>


</LinearLayout>

这是结构。只需调整填充/边距/ ID和layout_height和宽度。对于您的情况,我使用layout_weight,这对于指定多个视图之间的大小比非常有用。