在多个屏幕尺寸支持文本(Support text in multiple screen size)

2019-10-17 09:08发布

我已经研究了很多相关的话题,但话题主要围绕图像。 我明白这一点: http://developer.android.com/guide/practices/screens_support.html ,但我真的不明白的字体动态调整的想法。

对于图像没有任何问题,我用LDPI,MDPI,华电国际和xhdpi。 然而,对于字体,我不知道如何来调整它们的大小。 任何人?

我的代码是如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:id="@+id/layoutHeader"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/headerimage"
android:orientation="horizontal">

<TextView
    android:id="@+id/headerTitle"
    android:layout_width ="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:textColor="#FFF"
    android:textSize="28dp"
android:textStyle="bold"
    android:text="Some Random Banner Title"
    style="@style/headerTextStyle"
 />

<ImageButton
    android:id="@+id/btnPlus"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginRight="5dp"
    android:layout_marginTop="6dp"
    android:background="#0000"
    android:scaleType="centerCrop"
    android:src="@drawable/plus" />

<ImageButton
    android:id="@+id/btnInfo"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="6dp"
    android:background="#0000"
    android:scaleType="centerCrop"
    android:src="@drawable/info" />

<ImageButton
    android:id="@+id/btnGuide"
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:layout_centerVertical="true"
    android:layout_toLeftOf="@+id/btnPlus"
    android:background="#0000"
    android:scaleType="centerCrop"
    android:src="@drawable/guide" />

</RelativeLayout>

Answer 1:

我把文本大小在样式资源,然后用另一种样式的资源文件的屏幕尺寸..

所以你必须RES /价值观大/ style.xml,RES /值小/ style.xml等。每个这些样式将包含该项目具有不同的DP值的文字大小。 请记住,华电国际,MDPI,LDPI等具有像素密度,而不是屏幕尺寸做。

因此,举例来说,如果在res /价值/ style.xml您有:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="headerTextStyle" >
    <item name="android:textSize">28dp</item>
   ...
</style>
</resources>

在另一个资源文件,假设为大屏幕(RES /价值观大/ style.xml):

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="headerTextStyle" >
    <item name="android:textSize">46dp</item>
   ...
</style>
</resources>

然后,这种风格的过程中应用到元素,系统将选择基于设备的屏幕尺寸正确的。您可以在同一文件中提供多种样式,一个标题文本,一个普通的文本 - 无论不同类型的文字需要,类似CSS。

或者,你可以复制你的布局文件在同等资格的资源目录,如RES /布局大/ layout.xml,RES /布局小/ layout.xml并在每个不同的文字大小,但是这将是不必要的重复多个XML 。



文章来源: Support text in multiple screen size