如何在Android中自动调整ui屏幕?

时间:2017-01-20 11:42:09

标签: android android-layout android-linearlayout relativelayout

我设计了几个屏幕,其中我给出了布局宽度和高度作为换行内容,并且仅使用了dp和sp,但是ui在移动设备之间仍然存在差异。请让我知道我哪里出错了。

`

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:padding="1dp"
    tools:context=".view.FragmentViews.RMDashboardActitvity">
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>
    <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <LinearLayout
            android:layout_width="match_parent"
            android:orientation="horizontal"
            android:padding="12dp"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Available"
                android:textColor="#82BCB4"
                android:textSize="20sp"
                />
            <Switch
                android:id="@+id/theSwitchId"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:switchMinWidth="95dp"
                android:track="@drawable/switch_bg"
                android:layout_marginStart="40dp"
                android:thumbTint="#224e6d"
                android:layout_gravity="center|center_vertical"
                android:layout_marginLeft="40dp" />
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="UnAvailable"
                android:layout_marginStart="32dp"
                android:textColor="#224e6d"
                android:textSize="20sp"
                android:layout_marginLeft="37dp" />
        </LinearLayout>
    </android.support.v7.widget.CardView>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.RecyclerView
            android:id="@+id/rv"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="10dp" />

    </LinearLayout>

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/maincv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:cardBackgroundColor="#224e6d">
            <RelativeLayout
                android:id="@+id/rl"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:padding="16dp">

                <RelativeLayout
                    android:id="@+id/person_details"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_alignParentStart="true"
                    android:layout_alignParentLeft="true">

                    <ImageView
                        android:id="@+id/person_photo"
                        android:layout_width="40dp"
                        android:layout_height="40dp"
                        android:layout_alignParentLeft="true"
                        android:layout_alignParentTop="true"
                        android:layout_marginRight="10dp"
                        android:src="@drawable/icon_customer" />

                    <TextView
                        android:id="@+id/textView"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_centerVertical="true"
                        android:layout_toEndOf="@+id/person_photo"
                        android:text="CUSTOMER"
                        android:textColor="#bae2db"
                        android:textSize="20sp"
                        android:textStyle="bold"
                        android:layout_toRightOf="@+id/person_photo" />
                </RelativeLayout>

                <AutoCompleteTextView
                    android:id="@+id/autoCompleteTextView"
                    android:layout_width="350dp"
                    android:layout_height="40dp"
                    android:background="@drawable/roundededittext"
                    android:hint="     Search"
                    android:layout_below="@+id/person_details"
                    android:layout_alignParentStart="true"
                    android:layout_alignParentLeft="true" />

                <SearchView
                    android:id="@+id/searchView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignTop="@+id/autoCompleteTextView"
                    android:layout_alignParentEnd="true"
                    android:layout_alignParentRight="true" />
            </RelativeLayout>
        </android.support.v7.widget.CardView>
        <RelativeLayout
            android:id="@+id/rl1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/dashboard_border"
            >
            <RelativeLayout
                android:id="@+id/registercustomerrl"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_alignParentStart="true"
                android:padding="16dp"
                android:layout_alignParentLeft="true">

                <ImageView
                    android:id="@+id/plus"
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"
                    android:layout_marginRight="10dp"
                    android:src="@drawable/icon_register_customer" />

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:layout_toEndOf="@+id/plus"
                    android:text="REGISTER CUSTOMER"
                    android:textColor="#224e6d"
                    android:textSize="16sp"
                    android:textStyle="bold"
                    android:layout_toRightOf="@+id/plus" />
            </RelativeLayout>
        </RelativeLayout>
    </LinearLayout>
</LinearLayout>`

1 个答案:

答案 0 :(得分:1)

为此,请使用以下方法

  • 尝试使用drawable-hdpi,drawable-xhdpi,drawable-xxhdpi等drawable,以便在您的应用中使用哪些图像。
  • 尝试在修复尺寸中使用 dp 而不是 px
  • 尽量避免在app中提供修复或绝对大小
  • 尝试使用像res / values-hdpi / dimens.xml,res / values-xhdpi / dimens.xml这样的dimens.xml来获取边距,填充等。
  • 尝试使用重量或布局重量来划分。

如果您需要更多帮助,我将不胜感激。