如何设置不同设备的字体

时间:2015-08-22 10:43:49

标签: android

我正在创建简单的应用来显示通知。我想在大型设备上使用大字体,在小型设备上使用小字体。请帮助。

以下是dpi-213的平板电脑的屏幕截图 enter image description here

以下屏幕截图的Moto G3手机有dpi - 320

enter image description here

2 个答案:

答案 0 :(得分:1)

您需要根据所需的 屏幕尺寸和分辨率 创建不同的值文件夹,并在每个文件夹中添加“ dimens.xml ”文件。

例如:

对于HDPI设备 - 您需要创建具有此名称的文件夹

"values-sw320dp-hdpi" under this folder put "dimens.xml"

对于大型HDPI设备 - 您需要创建具有此名称的文件夹

"values-large-hdpi-1024x600" under this folder put "dimens.xml"

对于MDPI设备 - 您需要创建具有此名称的文件夹

"values-sw320dp-mdpi" under this folder put "dimens.xml"

类似地,您也可以在“ res ”文件夹下为其他设备创建不同的值文件夹。

现在,接下来要做什么以及如何运作

假设您在xml中定义了TextView,并且在不同的设备上需要不同的字体大小:

<TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:textSize="@dimen/textSize"    // This is the important line
 android:text="Hello"/>

现在,这里有' dimens.xml '文件。您需要在不同的dimens.xml w.r.t屏幕大小和分辨率下指定“ textSize ”的不同大小值

例如:

对于HDPI设备:res&gt; values-sw320dp-hdpi&gt; dimens.xml

 <dimen name="textSize">19sp</dimen>  // Setting size of Text for HDPI devices

对于MDPI设备:res&gt; values-sw320dp-mdpi&gt; dimens.xml

 <dimen name="textSize">15sp</dimen>  // Setting size of Text for MDPI devices 

同样,您也可以为其他屏幕定义尺寸。

答案 1 :(得分:0)

您应该使用样式,然后您可以拥有单独的文件夹&#34;值&#34; (默认)&#34; values-hdpi&#34; (高密度)&#34;值-mdpi&#34; (中密度)等等,并根据需要在每个文件夹中放置带有正确textSize值的样式文件。

然后,当您处于中密度设备时,它将在&#34; values-mdpi&#34;中选择文件。文件夹,如果存在或在&#34;值&#34;如果没有,高密度等也一样......

同样的原则适用于al&#34; res&#34;子文件夹