对于不同的屏幕布局,文本大小不会改变?
Posted
技术标签:
【中文标题】对于不同的屏幕布局,文本大小不会改变?【英文标题】:Text size is not getting changed for different screen layouts? 【发布时间】:2016-03-24 18:19:49 【问题描述】:我正在尝试使我的应用程序支持多屏幕,因为我创建了不同的布局文件夹,例如 layout-large
、 layout-small
、layout-xlarge
、 layout-sw320dp
、 layout-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 在您的问题中告诉我们您尝试了什么以及您是如何尝试的。向我们提供更多详细信息,以便人们可以帮助您!以上是关于对于不同的屏幕布局,文本大小不会改变?的主要内容,如果未能解决你的问题,请参考以下文章