如何为典型的电话屏幕480x800 hdpi创建布局?

时间:2019-03-14 12:40:18

标签: android android-layout

RecyclerView的项目布局,填充和边距在典型的电话屏幕 480x800 hdpi 上存在冲突。除480 * 800 hdpi以外,版式设计可完美显示普通屏幕。

三星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 屏幕截图中存在填充和边距问题,也尝试过SO答案,但我没有任何想法。

任何人都知道,如何解决此问题?请分享您的想法。

1 个答案:

答案 0 :(得分:0)

您可以在res内生成一个新的LIKE文件夹以获得支持。

关于尺寸,请检查以下链接。那对你有帮助。 https://developer.android.com/guide/practices/screens_support.html

您可以在layout中创建一个新的layout-large文件夹。在此文件夹中添加XML。这样,您就可以管理它。 例如

res

您可以根据需要从Android Studio创建新的布局。 右键单击layout => New =>布局资源文件

enter image description here

根据您的要求进行定制并生成。