【问题标题】:TextView FontSize according to Different Resolution and ScreenSize不同分辨率和屏幕尺寸的TextView字体大小
【发布时间】:2012-05-24 18:18:48
【问题描述】:
我在这里开发了一个 Android 应用程序,它可以在所有屏幕尺寸和分辨率的设备上运行。但是一个问题是我的TextView's Fontsize 在所有屏幕尺寸上都是相同的。我想根据不同的ScreenSize和屏幕分辨率更改FontSize。
提前致谢。
【问题讨论】:
标签:
android
textview
font-size
【解决方案1】:
一种方法是在 res 文件夹中创建必要的文件夹,例如 layout-large、layout-small、layout-normal、layout-xlarge。并将您的 xmls 放入这些文件夹中,然后更改您想要对文本视图和任何内容执行的任何操作
【解决方案3】:
您应该使用sp 单位而不是dip 或dp 来表示字体大小。 sp 是独立于缩放的像素,它们会根据屏幕像素密度进行自我调整。这是确切的区别。
dp
与密度无关的像素 - 基于屏幕物理密度的抽象单位。这些单位与 160 dpi 屏幕相关,因此 1 dp 是 160 dpi 屏幕上的一个像素。 dp与像素的比例会随着屏幕密度而变化,但不一定成正比。注意:编译器同时接受“dip”和“dp”,但“dp”与“sp”更一致。
sp
Scale-independent Pixels - 这类似于 dp 单位,但它也根据用户的字体大小偏好进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好进行调整。
【解决方案4】:
使用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 字体大小单位。
【解决方案5】:
转到您的 xml 文件并将 textsize 添加为:
android:textSize="20sp"
这会增加你的字体大小
【解决方案6】:
您好,在您的资源文件夹中创建如下文件夹,然后将您的 XML 文件复制到其中,现在您可以检查调色板窗口,它将根据您可以修改屏幕尺寸显示不同尺寸的屏幕。
layout-large, layout-small, layout-xlarge,
现在它支持所有类型的屏幕尺寸,您的字体大小将根据屏幕尺寸清晰。有关支持多个屏幕的更多信息,请查看 android documentation。
【解决方案7】:
使用此代码根据屏幕自动调整字体大小
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);