7

在这里,我开发了一个 Android 应用程序,它可以在所有屏幕尺寸和分辨率的设备上运行。但一个问题是我的TextView's字体大小在所有屏幕大小上都是相同的。我想FontSize根据不同ScreenSize和屏幕分辨率进行更改。

提前致谢。

4

7 回答 7

5

使用屏幕类别中的代码或使用getSize()方法,例如:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

如此处所述获取屏幕大小,然后使用setTextSize()方法相应地设置字体大小,您也可以考虑使用sp单位作为字体大小。

于 2012-05-17T07:23:21.690 回答
2

首先,如果你还没有这样做,你应该阅读这个

http://developer.android.com/guide/practices/screens_support.html

要提供任何资源,包括可以应用于文本的样式,您应该阅读使用配置限定符部分

此处的另一个有用文档http://developer.android.com/guide/topics/resources/more-resources.html#Dimension应该可以帮助您选择正确的文本度量单位,理想情况下,您希望使用 sp's,如摘抄:

sp

Scale-independent Pixels - 这类似于 dp 单位,但它也根据用户的字体大小偏好进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好进行调整。

希望有帮助。

于 2012-05-17T07:16:04.600 回答
1

您好,在您的资源文件夹中创建如下文件夹,然后将您的 XML 文件复制到其中,现在您可以检查调色板窗口,它将根据您可以修改屏幕尺寸显示不同尺寸的屏幕。

大布局,小布局,大布局,

现在它支持所有类型的屏幕尺寸,您的字体大小将根据屏幕尺寸清晰。有关支持多个屏幕的更多信息,请查看 android文档

于 2013-03-05T11:35:17.607 回答
1

使用此代码根据屏幕自动调整字体大小

Display display;
Point size;
int width, height;
float txtsize;

在 oncreate() 中声明和使用

display = getWindowManager().getDefaultDisplay();
         size = new Point();
        display.getSize(size);
         width = size.x;
         height = size.y;
         txtsize=height*0.024f;

/* 如果您的屏幕高度为 854,则使用字体大小 20.4*/

将大小设置为 textview 只需使用此代码..

 textView.setTextSize(txtsize);
于 2016-01-08T07:37:29.757 回答
0

一种方法是在 res 文件夹中创建必要的文件夹,例如 layout-large、layout-small、layout-normal、layout-xlarge。并将您的 xmls 放入这些文件夹中,然后更改您想要对文本视图和任何内容执行的任何操作

于 2012-05-17T07:13:47.387 回答
0

您应该使用spunit 来表示字体大小而不是dipor dpsp是独立于尺度的像素,它们根据屏幕像素密度进行自我调整。这是确切的区别。

dp

Density-independent Pixels - 一个基于屏幕物理密度的抽象单位。这些单位与 160 dpi 屏幕相关,因此 1 dp 是 160 dpi 屏幕上的一个像素。dp与像素的比例会随着屏幕密度而变化,但不一定成正比。注意:编译器同时接受“dip”和“dp”,尽管“dp”与“sp”更一致。

sp
与比例无关的像素 - 这类似于 dp 单位,但它也根据用户的字体大小偏好进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好进行调整。

于 2012-05-17T07:16:43.913 回答
-3

转到您的 xml 文件并将 textsize 添加为:

android:textSize="20sp" 

这将增加您的字体大小

于 2012-05-17T07:42:57.590 回答