TextView字体大小根据不同的分辨率和屏幕尺寸

时间:2012-05-17 06:56:01

标签: android textview font-size

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

先谢谢。

7 个答案:

答案 0 :(得分:5)

使用Screen Category中的代码或使用getSize()方法,如:

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

here所述获取屏幕尺寸,然后使用 setTextSize()方法相应地设置字体大小,您还可以考虑使用sp单位来调整字体大小

答案 1 :(得分:2)

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

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

要提供任何资源,包括可应用于文字的样式,请阅读Using configuration qualifiers

部分

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

  

     

与比例无关的像素 - 这与dp单位类似,但它也会根据用户的字体大小首选项进行缩放。推荐你   指定字体大小时使用此单位,因此将调整它们   屏幕密度和用户偏好。

希望有所帮助。

答案 2 :(得分:1)

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

布局大,布局小,布局-xlarge,

现在它支持所有类型的屏幕尺寸,您的字体大小将根据屏幕大小清晰显示。有关支持多个屏幕的更多信息,请检查Android documentation

答案 3 :(得分: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);

答案 4 :(得分:0)

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

答案 5 :(得分:0)

您应该使用sp单位来代替字体大小而不是dipdpsp是与比例无关的像素,可根据屏幕像素密度自行调整。这是确切的区别。

dp

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

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

答案 6 :(得分:-3)

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

android:textSize="20sp" 

这会增加你的字体大小