更改布局大小取决于屏幕大小

时间:2015-08-03 09:00:33

标签: c# android xamarin

我是Android编程的新手。我写了一个小应用程序。但是当我在一台4.7英寸的屏幕设备上推出它时,它看起来很小。 如何让它针对不同尺寸的屏幕进行自动缩放?

我的XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:weightSum="100"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:minWidth="25px"
    android:minHeight="25px">
    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="267.9dp"
        android:weight="100"
        android:id="@+id/frameLayout1">
        <ImageView
            android:src="@drawable/fone"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:id="@+id/imageView1" />
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="140dp"
            android:id="@+id/linearLayout1"
            android:layout_marginBottom="0.0dp">
            <ImageButton
                android:src="@android:drawable/ic_menu_gallery"
                android:layout_width="49.0dp"
                android:layout_height="50.8dp"
                android:id="@+id/privateButton"
                android:layout_marginRight="98.9dp"
                android:background="#00000000" />
            <ImageButton
                android:src="@drawable/logo"
                android:layout_width="75.3dp"
                android:layout_height="64.1dp"
                android:id="@+id/logoButton"
                android:layout_marginRight="113.7dp"
                android:background="#00000000" />
            <ImageButton
                android:src="@android:drawable/ic_menu_gallery"
                android:layout_width="49.0dp"
                android:layout_height="50.8dp"
                android:id="@+id/cartButton"
                android:background="#00000000" />
        </LinearLayout>
    </FrameLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="142.7dp"
        android:id="@+id/linearLayout2">
        <Button
            android:text="Суші"
            android:layout_width="192.8dp"
            android:layout_height="fill_parent"
            android:id="@+id/button1"
            android:background="@drawable/sushi"
            android:textColor="#ffffff"
            android:textSize="20sp"
            android:textStyle="bold" />
        <Button
            android:text="Роли"
            android:layout_width="192.8dp"
            android:layout_height="fill_parent"
            android:id="@+id/button2"
            android:background="@drawable/rolli"
            android:textColor="#ffffff"
            android:textSize="20sp"
            android:textStyle="bold" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="142.7dp"
        android:id="@+id/linearLayout3">
        <Button
            android:text="Сети"
            android:layout_width="192.8dp"
            android:layout_height="match_parent"
            android:id="@+id/button3"
            android:background="@drawable/sets"
            android:textColor="#ffffff"
            android:textSize="20sp"
            android:textStyle="bold" />
        <Button
            android:text="Холодні Закуски"
            android:layout_width="192.8dp"
            android:layout_height="match_parent"
            android:id="@+id/button4"
            android:background="@drawable/holodni"
            android:textColor="#ffffff"
            android:textSize="20sp"
            android:textStyle="bold" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="70.2dp"
        android:id="@+id/linearLayout4"
        android:layout_marginLeft="0.0dp">
        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="65dp"
            android:background="#f2565c"
            android:id="@+id/linearLayout5">
            <ImageButton
                android:src="@drawable/back"
                android:layout_width="49.0dp"
                android:layout_height="50.8dp"
                android:id="@+id/previousButton"
                android:layout_marginRight="120.8dp"
                android:background="#00000000"
                android:layout_marginTop="8.6dp"
                android:clickable="true" />
            <ImageButton
                android:src="@drawable/home"
                android:layout_width="49.0dp"
                android:layout_height="50.8dp"
                android:id="@+id/homeButton"
                android:layout_marginRight="117.5dp"
                android:background="#00000000"
                android:layout_marginTop="7.4dp"
                android:clickable="true" />
            <ImageButton
                android:src="@drawable/next"
                android:layout_width="49.0dp"
                android:layout_height="50.8dp"
                android:id="@+id/nextButton"
                android:layout_marginLeft="0.0dp"
                android:background="#00000000"
                android:layout_marginTop="8.6dp"
                android:clickable="true" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

是应该用xml还是在Main Activity中编写?

1 个答案:

答案 0 :(得分:1)

如果您希望应用程序支持不同的屏幕尺寸,您应该尝试使用您的视图,而不是使用模拟值:

  

机器人:layout_height =&#34; 140dp&#34;

但使用值: match_parent &amp; wrap_content ,例如:

android:layout_height="wrap_content"
android:layout_width="match_parent"

使用重力 layout_gravity 属性对齐组件。 例如:

android:layout_gravity="center_horizontal"
android:gravity="center"