Как создать макет для типичного экрана телефона с разрешением 480х800 точек на дюйм? - PullRequest
0 голосов
/ 14 марта 2019

RecyclerView расположение элемента, отступы и поля конфликтуют на типичном экране телефона 480x800 hdpi .Кроме 480 * 800 точек на дюйм, дизайн макета идеально подходит для обычных экранов.

Значения Samsung J1 Ace DisplayMetrics:

DisplayMetrics{density=1.5, width=480, height=800, scaledDensity=1.1850001, xdpi=217.714, ydpi=216.17}

Я создал папку макета для layout-w320dp и заменил ниже xml, который работал нормально на обычных макетах (обычные мобильные экраны).

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <android.support.v7.widget.CardView
        android:id="@+id/cardViewDashboard"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/paddingDefault"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="@dimen/paddingDefault"
        card_view:cardCornerRadius="0dp"
        card_view:cardMaxElevation="@dimen/paddingDefault"
        card_view:contentPadding="@dimen/paddingDefault">

        <LinearLayout
            android:id="@+id/relativeLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center"
            android:gravity="center"
            android:orientation="vertical"
            android:padding="15dp">

            <LinearLayout
                android:id="@+id/circle_layout"
                android:layout_width="85dp"
                android:layout_height="85dp"
                android:layout_centerInParent="true"
                android:layout_gravity="center"
                android:background="@drawable/ic_legend"
                android:gravity="center">

                <android.support.v7.widget.AppCompatImageView
                    android:id="@+id/imgViewDashboard"
                    android:layout_width="36dp"
                    android:layout_height="36dp"
                    android:layout_gravity="center|center_horizontal"
                    android:tint="@color/toolBar"
                    card_view:srcCompat="@drawable/ic_dashboard" />

            </LinearLayout>


            <TextView
                android:id="@+id/txtViewDashboard"
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:layout_below="@+id/imgViewDashboard"
                android:layout_centerHorizontal="true"
                android:gravity="center"
                android:text="@string/title_dashboard"
                android:textAppearance="@style/TextAppearance"
                android:textColor="@color/toolBar" />
        </LinearLayout>

    </android.support.v7.widget.CardView>

</LinearLayout>

Макет, имеющий проблемы с отступами и полями для 480 * 800 hdpi скриншотов FYR, также я пробовал SOответы, но я не получил никаких идей.

Кто-нибудь знает, как решить эту проблему?Пожалуйста, поделитесь своими идеями.

1 Ответ

0 голосов
/ 14 марта 2019

Вы можете создать новую папку layout внутри res для поддержки.

Что касается размеров, пожалуйста, проверьте ссылку ниже. Это поможет вам. https://developer.android.com/guide/practices/screens_support.html

Вы можете создать новую папку layout-large в res. Добавьте свой XML в эту папку. Таким образом, вы можете управлять этим. например,

res/layout-large/activity_main.xml

Вы можете создать новый макет по вашему требованию из студии Android. Щелкните правой кнопкой мыши на макете => Новый => файл ресурсов макета

enter image description here

Настройте согласно вашему требованию и создайте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...