具有不同屏幕尺寸的Android绝对布局

时间:2014-10-31 20:42:29

标签: android absolutelayout

我使用绝对布局将屏幕划分为4种,中心的圆圈就像这样 enter image description here

小屏幕尺寸工作正常,但屏幕尺寸不大。 如何使用不同的屏幕宽度进行此操作?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/linear"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<AbsoluteLayout
    android:id="@+id/AbsoluteLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:l="true"
    android:layout_centerInParent="true"
    android:background="#fcf2cf"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.organizer2.MainActivity" >

    <Button
        android:id="@+id/Button1"
        android:layout_width="148dp"
        android:layout_height="180dp"
        android:layout_weight="1"
        android:layout_x="0dp"
        android:layout_y="0dp"
        android:background="#219baa"
        android:text="Button" />

    <Button
        android:id="@+id/Button2"
        android:layout_width="148dp"
        android:layout_height="180dp"
        android:layout_weight="1"
        android:layout_x="148dp"
        android:layout_y="0dp"
        android:background="#ef820b"
        android:text="Button" />

    <Button
        android:id="@+id/Button3"
        android:layout_width="148dp"
        android:layout_height="180dp"
        android:layout_weight="1"
        android:layout_x="0dp"
        android:layout_y="180dp"
        android:background="#e3c800"
        android:text="Button" />

    <Button
        android:id="@+id/Button4"
        android:layout_width="148dp"
        android:layout_height="180dp"
        android:layout_weight="1"
        android:layout_x="148dp"
        android:layout_y="180dp"
        android:background="#36bc89"
        android:text="Button" />

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_x="4dp"
        android:layout_y="132dp"
        android:src="@drawable/circle" />

   </AbsoluteLayout>

</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

AbsolueLayouts是一个很大的禁忌,因为他们不会对不同尺寸的设备做任何事情。尝试使用LinearLayouts的组合来实现此视图。通过将所有按钮设置为linearlayout内部并为每个按钮赋予1的权重,我们告诉他们所有增长,这不会发生在绝对布局中。线性布局本身也处于线性布局中,并且还具有权重,因此它们会随着额外的屏幕空间占用而增长(嵌套的LinearLayouts对性能不是很好但是现在不用担心,因为你仍然似乎正在学习基础知识,你的应用程序的用户不会注意到任何延迟)。 :

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/linear"
android:layout_width="match_parent"
android:background="#fcf2cf"
android:layout_height="match_parent"
android:orientation="vertical" >

    <LinearLayout 
    android:id="@+id/linear"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical" >

           <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:tools="http://schemas.android.com/tools"
           android:id="@+id/linear"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:layout_weight=1
           android:orientation="hoizontal" >

                 <Button
                 android:id="@+id/Button1"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
                 android:background="#219baa"
                 android:text="Button" />

                 <Button
                 android:id="@+id/Button2"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_weight="1"
                 android:background="#ef820b"
                 android:text="Button" />

           </LinearLayout>

           <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:tools="http://schemas.android.com/tools"
           android:id="@+id/linear"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:layout_weight=1
           android:orientation="hoizontal" >

                <Button
                android:id="@+id/Button3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="#e3c800"
                android:text="Button" />

                <Button
                android:id="@+id/Button4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="#36bc89"
                android:text="Button" />

          </LinearLayout>
</LinearLayout>

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:src="@drawable/circle" />

   </AbsoluteLayout>

</RelativeLayout>