2016-08-23 75 views
0

我一直在尝试在我的代码中设置按钮文本的文本大小,但问题是文本在我的Galaxy选项卡s2上正常显示(我正在使用此设备进行测试),但当我在xperia MP4 dual上打开应用程序时,文本变得拥挤,文本(文本为“CHOSEN”)分成两行(CHOS在一个,EN在另一个)。我在清单文件中添加了支持屏幕块,但它不起作用。此外,我读了一些关于为每个屏幕大小创建不同的dimens.xml文件夹(链接:Text size and different android screen sizes),但我很困惑如何在我的代码中使用它们,以便代码动态调整文本大小。动态设置按钮的文本大小

+0

试着分享一些代码,以便更好地理解问题。或者可能是一个测试例子来重现问题。 – Marcs

回答

0

创造价值文件夹不同的屏幕

res/values/dimens.xml(default) 
res/values-ldpi/dimens.xml (240x320 and nearer resolution) 
res/values-mdpi/dimens.xml (320x480 and nearer resolution) 
res/values-hdpi/dimens.xml (480x800, 540x960 and nearer resolution) 
res/values-xhdpi/dimens.xml (720x1280 - Samsung S3, Micromax Canvas HD, etc) 
res/values-xxhdpi/dimens.xml (1080x1920 - Samsung S4, HTC one, etc) 
res/values-large/dimens.xml (480x800) 
res/values-large-mdpi/dimens.xml (600x1024) 
res/values-sw600dp/dimens.xml (600x1024) 
res/values-sw720dp/dimens.xml (800x1280) 
res/values-xlarge-xhdpi/dimens.xml (2560x1600 - Nexus 10") 
res/values-large-xhdpi/dimens.xml (1200x1920 - Nexus 7"(latest)) 

或者你也可以做到这一点通过把

View.setTextSize(size in px); 

在onCreate方法 您还可以通过

设置文字大小显示尺寸的功能
Display d=getWindowManager().getDefaultDisplay(); 
int w=d.getWidth(); 
int h=d.getHeight(); 
View.setTextSize(Math.sqrt(w*w+h*h)/(edit here)); 
+0

感谢您的回答,但请您解释最后一行代码??(Math.sqrt(w * w + h * h)/(编辑此处)) – Snehil

+0

我正在计算屏幕对角线的长度,然后设置根据该 –

+0

的文本大小这将避免文本超出视图范围 –