【问题标题】: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 放入这些文件夹中,然后更改您想要对文本视图和任何内容执行的任何操作

【讨论】:

    【解决方案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:

    sp

    与比例无关的像素 - 这类似于 dp 单位,但它也根据用户的字体大小偏好进行缩放。推荐你 指定字体大小时使用此单位,因此它们将被调整为 屏幕密度和用户偏好。

    希望对您有所帮助。

    【讨论】:

      【解决方案3】:

      您应该使用sp 单位而不是dipdp 来表示字体大小。 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);
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2012-06-25
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-11-15
                • 1970-01-01
                相关资源
                最近更新 更多