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

7

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

提前感谢。


1
请查看以下链接以获取有关按钮和文本大小的信息:http://stackoverflow.com/questions/10595795/button-and-size-of-text/10596355#10596355 - silwar
  1. 使用 sp
  2. 检查 https://dev59.com/s3E85IYBdhLWcg3wx2j2
- jerry.hsu
请查看此链接:https://dev59.com/K2Qn5IYBdhLWcg3wmILY - Bhavesh Jethani
6个回答

5
使用屏幕类别中的代码,或者使用getSize()方法:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

按照此处所述,获取屏幕尺寸,然后使用setTextSize()方法相应地设置字体大小,您还可以考虑使用sp 单位来进行字体大小的设置。

2

首先,如果您尚未这样做,应阅读此文档:

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

为了提供任何资源(包括适用于文本的样式),您应该阅读使用配置限定符部分。

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

sp

可缩放独立像素 - 这类似于 dp 单位,但还会按用户的字体大小偏好调整。建议您在指定字体大小时使用此单位,以便它们会根据屏幕密度和用户的喜好进行调整。

希望对您有所帮助。


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);

1

您好,请在您的资源文件夹中按照以下方式创建文件夹,然后将XML文件复制到其中。现在您可以检查调色板窗口,它将显示不同大小的屏幕,基于此您可以修改屏幕大小。

layout-large,layout-small,layout-xlarge

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


0

有一种方法是在res文件夹中创建必要的文件夹,如layout-large,layout-small,layout-normal,layout-xlarge,然后将您的xml文件放入这些文件夹中,然后更改您想要更改的TextView和任何内容。


-3

前往您的XML文件并添加textsize:

android:textSize="20sp" 

这将增加您的字体大小


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接