android - 在不同的屏幕上显示不同的界面

时间:2018-03-20 16:29:15

标签: android layout

我是Android编程的新手,我的问题是我用一些LienarLayouts创建了一个简单的计算器界面,结果在设计显示器和我的手机上都不一样。

The result i get on the design

The result i get on my phone (Galaxy S7)

我无法找到任何解决方案。对于操作员来说,它是我放在不同可绘制文件夹(hdpi,xhdpi和xxhdpi)上的一些图像。

我将把我的xml文件放在这里。

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="165dp"
            android:background="@color/clrBlue"
            android:orientation="vertical">

            <TextView
                android:id="@+id/textView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="right"
                android:gravity="right"
                android:paddingLeft="10dp"
                android:paddingRight="10dp"
                android:paddingTop="50dp"
                android:text="567"
                android:textColor="@android:color/background_light"
                android:textSize="45sp" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="87dp"
            android:orientation="horizontal"
            android:weightSum="4">

            <Button
                android:id="@+id/button"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@android:color/background_light"
                android:text="7"
                android:textColor="@android:color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/button2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@android:color/background_light"
                android:text="8"
                android:textColor="@android:color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/button3"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@android:color/background_light"
                android:text="9"
                android:textColor="@android:color/black"
                android:textSize="30sp" />

            <ImageButton
                android:id="@+id/imageButton"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@android:color/background_light"
                app:srcCompat="@drawable/divide" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="87dp"
            android:orientation="horizontal"
            android:weightSum="4">

            <Button
                android:id="@+id/button"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@android:color/background_light"
                android:text="4"
                android:textColor="@android:color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/button2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@android:color/background_light"
                android:text="5"
                android:textColor="@android:color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/button3"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@android:color/background_light"
                android:text="6"
                android:textColor="@android:color/black"
                android:textSize="30sp" />

            <ImageButton
                android:id="@+id/imageButton"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@android:color/background_light"
                app:srcCompat="@drawable/multiply" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="87dp"
            android:orientation="horizontal"
            android:weightSum="4">

            <Button
                android:id="@+id/button"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@android:color/background_light"
                android:text="1"
                android:textColor="@android:color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/button2"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@android:color/background_light"
                android:text="2"
                android:textColor="@android:color/black"
                android:textSize="30sp" />

            <Button
                android:id="@+id/button3"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@android:color/background_light"
                android:text="3"
                android:textColor="@android:color/black"
                android:textSize="30sp" />

            <ImageButton
                android:id="@+id/imageButton"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@android:color/background_light"
                app:srcCompat="@drawable/subtract" />
        </LinearLayout>

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

            <LinearLayout
                android:layout_width="192dp"
                android:layout_height="match_parent"
                android:gravity="center"
                android:orientation="vertical">

                <Button
                    android:id="@+id/button15"
                    android:layout_width="150dp"
                    android:layout_height="wrap_content"
                    android:background="@color/clrBlue"
                    android:text="clear"
                    android:textSize="25sp" />
            </LinearLayout>

            <Button
                android:id="@+id/button3"
                android:layout_width="96dp"
                android:layout_height="match_parent"
                android:background="@android:color/background_light"
                android:text="0"
                android:textColor="@android:color/black"
                android:textSize="30sp" />

            <ImageButton
                android:id="@+id/imageButton"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@android:color/background_light"
                app:srcCompat="@drawable/add" />
        </LinearLayout>

    </LinearLayout>

    <ImageButton
        android:id="@+id/imageButton5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:background="@color/transparent"
        android:paddingRight="50dp"
        android:paddingTop="125dp"
        app:srcCompat="@drawable/equal" />
</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

由于尺寸不同,结果不同。在布局显示的顶部,您将看到选择了Nexus 4,屏幕尺寸为4.7“,我认为Galaxy S7的尺寸为5.1”。

此外,密度像素可能存在差异。 您可以参考android文档了解不同的像素密度。 Support Different Pixel Densities

答案 1 :(得分:0)

相对和线性布局不是创建计算器布局的最佳选择。要进行此布局,请尝试使用GridLayoutConstraintLayout。这将是更容易和更可靠的解决方案

<强>被修改

calculator layout