在这里,我开发了一个Android应用程序,可以在所有屏幕尺寸和分辨率设备上运行。但有一个问题是我的TextView's
字体大小在所有屏幕大小上是相同的。我想根据不同的FontSize
和屏幕分辨率更改ScreenSize
。
先谢谢。
答案 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
单位来代替字体大小而不是dip
或dp
。 sp
是与比例无关的像素,可根据屏幕像素密度自行调整。这是确切的区别。
dp
与密度无关的像素 - 基于屏幕物理密度的抽象单位。这些单位相对于160 dpi的屏幕,因此一个dp是160 dpi屏幕上的一个像素。 dp与像素的比率将随着屏幕密度而变化,但不一定成正比。注意:编译器同时接受“dip”和“dp”,但“dp”与“sp”更加一致。
<强>属强>
与比例无关的像素 - 这与dp单位类似,但它也可以根据用户的字体大小首选项进行缩放。建议您在指定字体大小时使用此单位,以便根据屏幕密度和用户偏好调整它们。
答案 6 :(得分:-3)
转到xml文件并将textsize添加为:
android:textSize="20sp"
这会增加你的字体大小