对于不同的屏幕布局,文本大小不会改变?

Posted

技术标签:

【中文标题】对于不同的屏幕布局,文本大小不会改变?【英文标题】:Text size is not getting changed for different screen layouts? 【发布时间】:2016-03-24 18:19:49 【问题描述】:

我正在尝试使我的应用程序支持多屏幕,因为我创建了不同的布局文件夹,例如 layout-largelayout-smalllayout-xlargelayout-sw320dplayout-sw480dp ,我在 sp in 中设置了文本大小每个文件夹,我已经提到每个布局文件夹的不同文本大小,但文本没有改变。

这是我的 xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:background="@color/gray_pager"
    android:orientation="vertical"
    >

    <LinearLayout
        android:id="@+id/firstscreen_call_list"
        android:layout_
        android:layout_
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:background="@drawable/firstscreen_layout_bg"
        android:orientation="vertical">

        <LinearLayout
            android:layout_
            android:layout_
            android:layout_weight="0.55"
            android:background="@color/call_list_1"
           >

            <TextView
                android:id="@+id/call_list_title"
                android:layout_
                android:layout_
                android:layout_gravity="center"
                android:layout_weight="1"
                android:paddingLeft="10dp"
                android:text="Call List"
                android:textSize="32sp" />

            <ImageView
                android:layout_
                android:layout_
                android:layout_gravity="center"
                android:adjustViewBounds="true"
                android:padding="5dp"
                android:scaleType="fitXY"
                android:src="@drawable/cm_phone_icon"
                 />
        </LinearLayout>

        <LinearLayout
            android:layout_
            android:layout_
            android:layout_weight="0.45"
            android:background="@color/call_list_2"
            android:orientation="horizontal"
            android:paddingBottom="5dp"

            android:paddingTop="5dp">

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical"
                >

                <TextView
                    android:id="@+id/call_list_client_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="350" />

                <TextView
                    android:id="@+id/call_list_client_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:maxLines="2"
                    android:textSize="15sp"
                    android:text="Clients 99 Priority" />
            </LinearLayout>

            <View
                android:layout_
                android:layout_
                android:background="@color/gray_bg" />

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/call_list_service_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="3250" />

                <TextView
                    android:id="@+id/call_list_service_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:maxLines="2"
                    android:text="Servicing Contacts" />
            </LinearLayout>

            <View
                android:layout_
                android:layout_
                android:background="#e1e1e1" />

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/call_list_assigned_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="250" />

                <TextView
                    android:id="@+id/call_list_assigned_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:maxLines="2"
                    android:textSize="15sp"
                    android:text="Assigned Contacts" />
            </LinearLayout>

            <View
                android:layout_
                android:layout_
                android:background="#e1e1e1" />

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/call_list_custom_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="6" />

                <TextView
                    android:id="@+id/call_list_custom_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:maxLines="2"
                    android:textSize="15sp"
                    android:text="Custom List" />
            </LinearLayout>

        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:id="@+id/firstscreen_client_note"
        android:layout_
        android:layout_
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:background="@drawable/firstscreen_layout_bg"
        android:orientation="vertical">


        <LinearLayout
            android:layout_
            android:layout_
            android:layout_weight="0.55"
            android:background="@color/client_note_1">

            <TextView
                android:id="@+id/client_note_title"
                android:layout_
                android:layout_
                android:layout_gravity="center"
                android:layout_weight="1"
                android:paddingLeft="10dp"
                android:text="Client Note"
                android:textSize="32sp"
                android:textStyle="normal" />

            <ImageView
                android:layout_
                android:layout_
                android:layout_gravity="center"
                android:adjustViewBounds="true"
                android:padding="5dp"
                android:scaleType="fitXY"
                android:src="@drawable/cm_note_icon" />
        </LinearLayout>

        <LinearLayout
            android:layout_
            android:layout_
            android:layout_weight="0.45"
            android:background="@color/client_note_2"
            android:orientation="horizontal"
            android:paddingBottom="5dp"
            android:paddingTop="5dp">

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical"
                >

                <TextView
                    android:id="@+id/client_note_notes_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="10" />

                <TextView
                    android:id="@+id/client_note_notes_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:maxLines="2"
                    android:text="Notes Logged Today" />
            </LinearLayout>

            <View
                android:layout_
                android:layout_
                android:background="#e1e1e1" />

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/client_note_meeting_1"
                    android:layout_
                    android:layout_
                    android:textSize="15sp"
                    android:gravity="center"
                    android:text="7" />

                <TextView
                    android:id="@+id/client_note_meeting_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:maxLines="2"
                    android:text="Meetings Schedule" />
            </LinearLayout>

            <View
                android:layout_
                android:layout_
                android:background="#e1e1e1" />

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/client_note_phone_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="6" />

                <TextView
                    android:id="@+id/client_note_phone_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:maxLines="2"
                    android:textSize="15sp"
                    android:text="Phone Calls" />
            </LinearLayout>

            <View
                android:layout_
                android:layout_
                android:background="#e1e1e1" />

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/client_note_email_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="4" />

                <TextView
                    android:id="@+id/client_note_email_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:maxLines="2"
                    android:textSize="15sp"
                    android:text="Email(s) Sent" />
            </LinearLayout>

        </LinearLayout>


    </LinearLayout>

    <LinearLayout
        android:id="@+id/firstscreen_to_do_list"
        android:layout_
        android:layout_
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:background="@drawable/firstscreen_layout_bg"
        android:orientation="vertical">


        <LinearLayout
            android:layout_
            android:layout_
            android:layout_weight="0.55"
            android:background="@color/to_do_list_1">

            <TextView
                android:id="@+id/todolist_title"
                android:layout_
                android:layout_
                android:layout_gravity="center"
                android:layout_weight="1"
                android:paddingLeft="10dp"
                android:text="To-Do List"
                android:textSize="32sp" />

            <ImageView
                android:layout_
                android:layout_
                android:layout_gravity="center"
                android:adjustViewBounds="true"
                android:padding="5dp"
                android:src="@drawable/cm_todo_icon" />
        </LinearLayout>

        <LinearLayout
            android:layout_
            android:layout_
            android:layout_weight="0.45"
            android:background="@color/to_do_list_2"
            android:orientation="horizontal"
            android:paddingBottom="5dp"
            android:paddingTop="5dp">

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/todolist_open_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="20" />

                <TextView
                    android:id="@+id/todolist_open_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:maxLines="2"
                    android:textSize="15sp"
                    android:text="Open Task" />
            </LinearLayout>

            <View
                android:layout_
                android:layout_
                android:background="#e1e1e1" />

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/todolist_expire_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="5" />

                <TextView
                    android:id="@+id/todolist_expire_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:maxLines="2"
                    android:textSize="15sp"
                    android:text="Expiring Today" />
            </LinearLayout>

            <View
                android:layout_
                android:layout_
                android:background="#e1e1e1" />

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/todolist_direct_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="25" />

                <TextView
                    android:id="@+id/todolist_direct_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:maxLines="2"
                    android:textSize="15sp"
                    android:text="Directed Calls" />
            </LinearLayout>

            <View
                android:layout_
                android:layout_
                android:background="@color/gray_bg" />

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/todolist_action_1"
                    android:layout_
                    android:layout_
                    android:textSize="15sp"
                    android:gravity="center"
                    android:text="2" />

                <TextView
                    android:id="@+id/todolist_action_2"
                    android:layout_
                    android:layout_
                    android:textSize="15sp"
                    android:gravity="center"
                    android:maxLines="2"
                    android:text="Actions Pending" />
            </LinearLayout>

        </LinearLayout>

    </LinearLayout>

    <LinearLayout
        android:id="@+id/firstscreen_road_show"
        android:layout_
        android:layout_
        android:layout_marginBottom="5dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="5dp"
        android:layout_weight="1"
        android:background="@drawable/firstscreen_layout_bg"
        android:orientation="vertical">


        <LinearLayout
            android:layout_
            android:layout_
            android:layout_weight="0.55"
            android:background="@color/roadshow_1">

            <TextView
                android:id="@+id/roadshow_title"
                android:layout_
                android:layout_
                android:layout_gravity="center"
                android:layout_weight="1"
                android:paddingLeft="10dp"
                android:text="Roadshow"
                android:textSize="32sp" />

            <ImageView
                android:layout_
                android:layout_
                android:layout_gravity="center"
                android:adjustViewBounds="true"
                android:padding="5dp"
                android:scaleType="fitXY"
                android:src="@drawable/cm_roadshow_icon" />
        </LinearLayout>

        <LinearLayout
            android:layout_
            android:layout_
            android:layout_weight="0.45"
            android:background="@color/roadshow_2"
            android:orientation="horizontal"
            android:paddingBottom="5dp"
            android:paddingTop="5dp">

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/roadshow_meeting_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="10" />

                <TextView
                    android:id="@+id/roadshow_meeting_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="Meetings Schedule" />
            </LinearLayout>

            <View
                android:layout_
                android:layout_
                android:background="#e1e1e1" />

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/roadshow_ongoing_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="5" />

                <TextView
                    android:id="@+id/roadshow_ongoing_2"
                    android:layout_
                    android:layout_
                    android:textSize="15sp"
                    android:gravity="center"
                    android:text="Ongoing Roadshow" />
            </LinearLayout>

            <View
                android:layout_
                android:layout_
                android:background="#e1e1e1" />

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/roadshow_future_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="1" />

                <TextView
                    android:id="@+id/roadshow_future_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="Future Roadshow" />
            </LinearLayout>

            <View
                android:layout_
                android:layout_
                android:background="#e1e1e1" />

            <LinearLayout
                android:layout_
                android:layout_
                android:layout_weight="1"
                android:gravity="center"
                android:orientation="vertical">

                <TextView
                    android:id="@+id/roadshow_mtoday_1"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="2" />

                <TextView
                    android:id="@+id/roadshow_mtoday_2"
                    android:layout_
                    android:layout_
                    android:gravity="center"
                    android:textSize="15sp"
                    android:text="Meetings Today" />
            </LinearLayout>

        </LinearLayout>

    </LinearLayout>
</LinearLayout>

【问题讨论】:

您在哪些设备上测试过?他们的决议是什么? @EricB。正在测试 moto g3 整个应用程序或任何一个文件? 只在一台设备上测试,你怎么知道这不起作用? 我刚刚实现了你的 xml,我找不到任何问题,不幸的是我有一个 moto g3,希望你知道 moto g3 采用哪种布局,所以尝试相应地编辑该文件并在其他文件中进行测试设备 【参考方案1】:

对于文本大小的最佳实践,我们只需将文本大小定义为 sp 。

我们应该如下设置文本

textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimensionPixelSize(R.dimen.textSize));

【讨论】:

【参考方案2】:

android 应该根据不同的密度进行布局,但某些移动设备不属于特定的密度。因此android会从布局目录中获取默认布局。

为了支持多种屏幕分辨率,为不同的屏幕尺寸提供不同的布局,您可以在 res 目录中创建以下目录,如下所示 布局-hdpi

布局-mdpi

布局-xhdpi

布局-xxhdpi

布局-w320dp-h408dp

布局-w480dp-h800dp

布局-w480dp-h854dp

布局-w720dp-h1280dp

布局-w1080dp-h1920dp

当您在所有这些目录中提供布局时,您将为不同尺寸提供多屏幕支持以及 layout-w1440dp-h2560dp。

更多信息click hear

【讨论】:

他为什么需要复制他的布局?而他可以只使用dimens文件来改变textSize?请不要鼓励人们重复。 @k0sh 我也尝试过改变dimens文件夹中的文本大小,但也不起作用 @ShivamNagpal 在您的问题中告诉我们您尝试了什么以及您是如何尝试的。向我们提供更多详细信息,以便人们可以帮助您!

以上是关于对于不同的屏幕布局,文本大小不会改变?的主要内容,如果未能解决你的问题,请参考以下文章

带有改变大小的 UIButtons 的 iOS 回流布局

如何根据屏幕大小调整按钮的图像和文本大小(自动布局)

如何使布局适合屏幕尺寸

对于 selected_state,textview 背景不会改变

自动布局位置重置

在 Qt 表单的不同布局中调整按钮大小