Android 布局显示错误

Android layout displaying wrong

我设计了一个屏幕,都是dp或者match_parent或者wrap_content。这意味着在任何屏幕上,无论分辨率或屏幕大小,如果错误请纠正我。

(连结 4)

结果是这样的 (Nexus 5)

这是XML代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context="com.techiequickie.bharath.parsetest.PlaceBet">


    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="53dp"
        android:background="@android:color/holo_green_light"
        android:weightSum="1"
        android:paddingLeft="20dp"
        android:paddingRight="20dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="BOA"
            android:id="@+id/textView"
            android:layout_gravity="center"
            android:textColor="#ffbf0c16" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/imageButton"
            android:clickable="true"
            android:src="@mipmap/ic_action"
            android:layout_gravity="center"
            android:background="#ff98cb00"
            android:paddingLeft="30dp" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/imageButton2"
            android:clickable="true"
            android:src="@mipmap/ic_action"
            android:layout_gravity="center"
            android:background="#ff98cb00"
            android:paddingLeft="10dp" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/imageButton3"
            android:clickable="true"
            android:src="@mipmap/ic_action"
            android:layout_gravity="center"
            android:background="#ff98cb00"
            android:paddingLeft="10dp" />

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:id="@+id/imageButton4"
            android:clickable="true"
            android:src="@mipmap/ic_action"
            android:layout_gravity="center"
            android:background="#ff98cb00"
            android:paddingLeft="5dp" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingLeft="20dp"
        android:paddingRight="20dp">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="New"
            android:id="@+id/textView2"
            android:textSize="10dp"
            android:paddingLeft="100dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="My Bets"
            android:textSize="10dp"
            android:id="@+id/textView3"
            android:paddingLeft="50dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Earnings"
            android:textSize="10dp"
            android:id="@+id/textView4"
            android:paddingLeft="30dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Account"
            android:textSize="10dp"
            android:paddingLeft="30dp" />
    </LinearLayout>

</LinearLayout>

您应该在 textSizes 上使用 sp 而不是 dp,并且您还需要为 ldpi、mdpi、hdpi、xhdpi、xxhdpi 放置不同的图像。

correct me if wrong错误

Nexus4 是 xhdpi 设备,而 Nexus5 是 xxhdpi 设备。

这意味着 - 如果您没有为两者提供正确缩放的图形 - Android 将为您执行缩放。

似乎 you provided the lower graphics 资源,所以 Android 向 向上扩展 ,引入像素化(伪像素)或拉伸。

如果你想节省图形资源数量,你应该至少提供更高分辨率图形,所以Android 将缩放 DOWN-wards,平均像素颜色。

此外,android:textSize的正确单位是sp,而不是dp