Android将不同的屏幕文本化

时间:2012-02-21 11:27:58

标签: android text scale

我正在构建一个需要在所有屏幕尺寸上看起来都很好的Android应用程序。我已经设法根据分辨率使用不同的可绘制资源文件夹来缩放drawables,但是如何使用纯文本实现相同的目标呢?

我真的需要使用不同的布局文件夹来实现这一目标吗?

感谢您的帮助!

3 个答案:

答案 0 :(得分:5)

使用sp表示文字大小,你应该没问题。

  

<强>属

     

与比例无关的像素 - 这就像dp单位,但它也是   按用户的字体大小首选项缩放。建议你使用   指定字体大小时,此单位将进行调整   屏幕密度和用户偏好。

来自Dimensions

dp / dip也可以使用,但不包括用户字体首选项。

答案 1 :(得分:0)

如果仅用于textview。在xml中的textview中声明大小ad dp。 dp是与屏幕分辨率相关的desipixels,文本视图大小也相应调整。

答案 2 :(得分:0)

我使用了自己编写的方法..适用于两个显示器(1024x720,800x480),希望它也适用于你的

班级:

       //this is a seperated class, for button textsize
       //declaration of standardvalues

       public class Fontstyles {
            static int INT_standardwidth = 1024, INT_standardsize = 50; //do not change

            public static double BTN_TXT_size(Button BTN_X) {
                Point size = new Point();
                YourMainActivity.DIS_main.getSize(size);
                int INT_width = size.x;
                if (BTN_X.getText().length() == 0)
                    return 0;
                // width of display                 (INT_width)
                // width standartvalue              (INT_standardwidth)
                // standardfontsize                 (INT_standardsize)
                return ((float) ((INT_width * 100 / INT_standardwidth)
                        * (INT_standardsize * (INT_width * 100 / INT_standardwidth) / 100) / 100));
            }}

这是在YourMainAvtivity:

public static Display DIS_main;
DIS_main = getWindowManager().getDefaultDisplay();

这是用于调用sizecalculation(无论你想要的地方):

YourButton.setTextSize((float) Fontstyles.BTN_TXT_size_(YourButton));

适用于TextViewsButton

使用后请回复并告诉我这是否适用于您的显示器。