Android电视布局自动变形

时间:2016-11-04 09:38:10

标签: android android-layout

我正在尝试为Android TV开发一个启动器,当我通过启动器进行任何其他活动然后返回主UI时,布局会自行更改。任何人都可以让我知道我在设计UI时所犯的错误。

enter image description here

这是XML代码。

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:grid="http://schemas.android.com/tools"
        app:orientation="horizontal"
        android:background="@color/colorAccent">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:padding="48dp"
            android:layout_alignParentLeft="true">

            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_weight="0.5">
                <TextClock
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/textClock"
                    android:textSize="32sp"
                    android:textColor="#ffffff"
                    android:layout_gravity="end"
                    grid:targetApi="jelly_bean_mr1" />
            </LinearLayout>

            <LinearLayout
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:orientation="horizontal"
                android:layout_weight="0.5"
                android:id="@+id/weather">
                <ImageView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:id="@+id/sun" />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textSize="16sp"
                    android:textColor="#ffffff"
                    android:textStyle="bold"
                    android:paddingRight="8dp"
                    android:paddingTop="4dp"
                    android:layout_gravity="right"
                    android:id="@+id/temp"/>
            </LinearLayout>
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:padding="48dp"
            android:layout_alignParentRight="true">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="4dp"
                android:id="@+id/sdcard"/>
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:padding="4dp"
                android:id="@+id/ethernet"/>
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_right"
                android:padding="4dp"
                android:id="@+id/bluetooth"/>
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@mipmap/ic_search"
                android:padding="4dp"
                android:id="@+id/wifi"/>
        </LinearLayout>

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="108dp"
            android:layout_marginLeft="96dp"
            android:layout_marginRight="96dp"
            android:layout_marginBottom="96dp"
            android:gravity="center_horizontal">

            <android.support.v7.widget.GridLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:rowCount="2"
                android:layout_toLeftOf="@+id/grla2"
                android:id="@+id/grla"
                app:columnCount="6">

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    android:id="@+id/movie"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1"
                    app:layout_column="0"
                    app:layout_row="0">

                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_movie"/>
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Movies"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="left"/>
                </FrameLayout>

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    android:id="@+id/news"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1"
                    app:layout_column="1"
                    app:layout_row="0">

                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_wcs"/>
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="News"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="right"/>
                </FrameLayout>

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    android:id="@+id/favorite"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1"
                    app:layout_column="2"
                    app:layout_row="0">

                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_market"/>
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Favorites"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="right"/>
                </FrameLayout>

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:id="@+id/game"
                    android:background="@drawable/app_selector"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1"
                    app:layout_column="3"
                    app:layout_row="0">
                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_game"/>
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Games"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="right"/>
                </FrameLayout>

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    android:id="@+id/browser"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1"
                    app:layout_column="4"
                    app:layout_row="0">
                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_browser"/>
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Browser"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="right"/>
                </FrameLayout>

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    android:id="@+id/livetv"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1"
                    app:layout_column="5"
                    app:layout_row="0">

                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_xbmc"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Live TV"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="right"/>
                </FrameLayout>

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    android:id="@+id/music"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1"
                    app:layout_column="0"
                    app:layout_row="1">

                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_music"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Music"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="right"/>

                </FrameLayout>

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    android:id="@+id/social"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1"
                    app:layout_row="1"
                    app:layout_column="1">

                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_social"/>
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Social"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="right"/>

                </FrameLayout>

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    android:id="@+id/shopping"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1"
                    app:layout_row="1"
                    app:layout_column="2">

                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_nv"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Shopping"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="right"/>
                </FrameLayout>

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="3">

                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:id="@+id/slide_show"
                        android:layout_marginRight="24dp"
                        android:layout_marginBottom="4dp"
                        android:scaleType="centerCrop" />
                </FrameLayout>

            </android.support.v7.widget.GridLayout>

            <android.support.v7.widget.GridLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_alignParentEnd="true"
                app:rowCount="4"
                android:layout_margin="2dp"
                android:id="@+id/grla2"
                app:columnCount="1">

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    android:id="@+id/devices"
                    app:layout_column="0"
                    app:layout_row="0"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1">
                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_devices"/>
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Device"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="right"/>
                </FrameLayout>

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    android:id="@+id/allapps"
                    app:layout_column="0"
                    app:layout_row="1"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1">
                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_allapps"/>
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="All Apps"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="right"/>
                </FrameLayout>

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    android:id="@+id/settings"
                    app:layout_column="0"
                    app:layout_row="2"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1">
                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_settings"/>
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Settings"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="right"/>
                </FrameLayout>

                <FrameLayout
                    android:layout_height="wrap_content"
                    android:layout_width="wrap_content"
                    android:padding="4dp"
                    android:background="@drawable/app_selector"
                    android:id="@+id/cleanup"
                    app:layout_column="0"
                    app:layout_row="3"
                    app:layout_rowSpan="1"
                    app:layout_columnSpan="1">
                    <ImageView
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:src="@drawable/fb_speedup"/>
                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="SpeedUp"
                        android:textSize="24sp"
                        android:textColor="#ffffff"
                        android:textStyle="bold"
                        android:paddingRight="8dp"
                        android:paddingTop="4dp"
                        android:layout_gravity="right"/>
                </FrameLayout>
            </android.support.v7.widget.GridLayout>
        </RelativeLayout>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/bottom_recycler"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"
            android:clipToPadding="false"/>
    </RelativeLayout>

1 个答案:

答案 0 :(得分:0)

你使用相对布局然后你需要关心对齐但是如果你想要将屏幕分成相等的部分,那么也使用线性布局和重量。我粘贴一些帮助你的代码,我希望你的问题得到解决

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:grid="http://schemas.android.com/tools"
    app:orientation="horizontal"
    android:background="@color/colorAccent">

   <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:layout_weight=".2"
           android:padding="5dp"
           android:layout_marginLeft="40dp"
           android:layout_marginRight="40dp">

           <LinearLayout
               android:layout_width="0dp"
               android:layout_height="match_parent"
               android:layout_weight="1"
               android:gravity="bottom"
               android:background="@color/blue">

               <TextView
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:text="Your Text"
                   android:textSize="20sp"
                   android:textColor="@color/black"/>
           </LinearLayout>

           <LinearLayout
               android:layout_width="0dp"
               android:layout_height="match_parent"
               android:layout_weight="1"
               android:gravity="bottom|right"
               android:layout_marginLeft="5dp"
               android:background="@color/blue">

               <TextView
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:text="Your Text"
                   android:textSize="20sp"
                   android:textColor="@color/black"/>
           </LinearLayout>

       </LinearLayout>

       <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="0dp"
           android:layout_weight=".8"
           android:paddingLeft="40dp"
           android:paddingRight="40dp"
           android:orientation="horizontal">

           <LinearLayout
               android:layout_width="0dp"
               android:layout_height="match_parent"
               android:layout_weight=".8"
               android:orientation="vertical">

               <LinearLayout
                   android:layout_width="match_parent"
                   android:layout_height="0dp"
                   android:layout_weight="1"
                   android:padding="5dp"
                   android:orientation="horizontal">

                   <LinearLayout
                       android:layout_width="0dp"
                       android:layout_height="match_parent"
                       android:layout_weight="1"
                       android:layout_marginRight="5dp"
                       android:background="@color/colorPrimary">

                   </LinearLayout>

                   <LinearLayout
                       android:layout_width="0dp"
                       android:layout_height="match_parent"
                       android:layout_weight="1"
                       android:layout_marginRight="5dp"
                       android:background="@color/colorPrimary">

                   </LinearLayout>

                   <LinearLayout
                       android:layout_width="0dp"
                       android:layout_height="match_parent"
                       android:layout_weight="1"
                       android:layout_marginRight="5dp"
                       android:background="@color/colorPrimary">

                   </LinearLayout>

                   <LinearLayout
                       android:layout_width="0dp"
                       android:layout_height="match_parent"
                       android:layout_weight="1"
                       android:layout_marginRight="5dp"
                       android:background="@color/colorPrimary">

                   </LinearLayout>

               </LinearLayout>

               <LinearLayout
                   android:layout_width="match_parent"
                   android:layout_height="0dp"
                   android:layout_weight="1"
                   android:padding="5dp"
                   android:orientation="horizontal">

                   <LinearLayout
                       android:layout_width="0dp"
                       android:layout_height="match_parent"
                       android:layout_weight="1"
                       android:layout_marginRight="5dp"
                       android:background="@color/colorPrimary">

                   </LinearLayout>
                   <LinearLayout
                       android:layout_width="0dp"
                       android:layout_height="match_parent"
                       android:layout_weight="1"
                       android:layout_marginRight="5dp"
                       android:background="@color/colorPrimary">

                   </LinearLayout>
                   <LinearLayout
                       android:layout_width="0dp"
                       android:layout_height="match_parent"
                       android:layout_weight="1"
                       android:layout_marginRight="5dp"
                       android:background="@color/colorPrimary">

                   </LinearLayout>
                   <LinearLayout
                       android:layout_width="0dp"
                       android:layout_height="match_parent"
                       android:layout_weight="1"
                       android:layout_marginRight="5dp"
                       android:background="@color/colorPrimary">

                   </LinearLayout>
               </LinearLayout>

           </LinearLayout>

           <LinearLayout
               android:layout_width="0dp"
               android:layout_height="match_parent"
               android:layout_weight=".2"
               android:padding="5dp"
               android:orientation="vertical">

               <LinearLayout
                   android:layout_width="match_parent"
                   android:layout_height="0dp"
                   android:layout_weight="1"
                   android:layout_marginBottom="5dp"
                   android:background="@color/colorPrimary">

               </LinearLayout>

               <LinearLayout
                   android:layout_width="match_parent"
                   android:layout_height="0dp"
                   android:layout_weight="1"
                   android:layout_marginBottom="5dp"
                   android:background="@color/colorPrimary">

               </LinearLayout>

               <LinearLayout
                   android:layout_width="match_parent"
                   android:layout_height="0dp"
                   android:layout_weight="1"
                   android:layout_marginBottom="5dp"
                   android:background="@color/colorPrimary">

               </LinearLayout>

               <LinearLayout
                   android:layout_width="match_parent"
                   android:layout_height="0dp"
                   android:layout_weight="1"
                   android:layout_marginBottom="5dp"
                   android:background="@color/colorPrimary">

               </LinearLayout>

           </LinearLayout>

       </LinearLayout>

       <LinearLayout
           android:layout_width="match_parent"
           android:layout_height="0dp"
           android:layout_weight=".1"
           android:gravity="center">

           <ImageView
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:src="@mipmap/ic_launcher"/>

           <ImageView
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:src="@mipmap/ic_launcher"/>

           <ImageView
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:src="@mipmap/ic_launcher"/>

           <ImageView
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:src="@mipmap/ic_launcher"/>
       </LinearLayout>
   </LinearLayout>

</RelativeLayout>