【问题标题】:layouts for different screen sizes android不同屏幕尺寸android的布局
【发布时间】:2016-02-17 07:40:56
【问题描述】:

我正在为不同的屏幕尺寸制作一个看起来不同的应用,

但是,按屏幕尺寸进行分隔 (小、中、大、xlarge) 并不能很好地完成这项工作。因为将它设置为大会为我的 5.5 英寸 oneplus one 和我认为是 4.3 英寸的 HTC sense XL 提供相同的布局。

有没有办法让它适合屏幕尺寸,而不是分辨率?

谢谢

编辑 进一步解释我的问题

layout on my Oneplus One

layout on my HTC

图片展示了这些屏幕上的布局,我觉得很难让它在小屏幕上看起来很好,这就是为什么我想为小屏幕做一个单独的布局。

我的 XML 代码

    <ImageView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:layout_gravity="center"
        android:layout_marginTop="30dp"
        android:src="@drawable/ic_logo"

        />

    <GridLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/ic_appbg"
        android:padding="20dp">

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="1"
            android:layout_row="1"
            android:src="@drawable/ic_services" />

        <TextView
            android:layout_column="1"
            android:layout_gravity="center"
            android:layout_row="2"
            android:text="@string/Services"
            android:textColor="@color/colorSecondaryText"

            />

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"

            android:layout_column="2"
            android:layout_row="1"
            android:src="@drawable/ic_send_balance" />

        <TextView
            android:layout_column="2"
            android:layout_gravity="center"
            android:layout_row="2"
            android:text="@string/sendBalance"
            android:textColor="@color/colorSecondaryText"

            />


        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="3"
            android:layout_row="1"
            android:src="@drawable/ic_call_me" />

        <TextView
            android:layout_column="3"
            android:layout_gravity="center"
            android:layout_row="2"
            android:text="@string/pay4me"
            android:textColor="@color/colorSecondaryText"

            />

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="1"
            android:layout_row="3"
            android:src="@drawable/ic_damage_vou" />

        <TextView
            android:layout_width="100dp"
            android:layout_column="1"
            android:layout_row="4"
            android:gravity="center"
            android:text="@string/damaged"
            android:textColor="@color/colorSecondaryText"

            />

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="2"
            android:layout_row="3"
            android:onClick="balance"
            android:src="@drawable/ic_check_balance" />

        <TextView
            android:layout_column="2"
            android:layout_gravity="center"
            android:layout_row="4"
            android:text="@string/checkBalance"
            android:textColor="@color/colorSecondaryText"

            />


        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:layout_column="3"
            android:layout_row="3"
            android:src="@drawable/ic_setting" />

        <TextView
            android:layout_column="3"
            android:layout_gravity="center"
            android:layout_row="4"
            android:text="@string/action_settings"
            android:textColor="@color/colorSecondaryText" />


    </GridLayout>
</LinearLayout>

【问题讨论】:

    标签: android xml layout screen-size


    【解决方案1】:

    无论如何,它可能不是一个好方法,在启动页面或第一页中获取设备高度和 with。在您所有的内部活动中编写不同的布局,并根据您所需的大小选项将设置的内容视图置于一个条件中。

    例如:-

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            if (size > 5) {
                setContentView(R.layout.activity_one);
            } else {
                setContentView(R.layout.activity_two);
            }
        }
    

    ;)

    【讨论】:

      猜你喜欢
      • 2014-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-11
      相关资源
      最近更新 更多