【问题标题】:Font size of text文本的字体大小
【发布时间】:2014-02-12 00:35:37
【问题描述】:

我创建了不同的layouts (layout, layout-small, layout-normal, layout-large, layout-xlarge)values (values, values-ldpi, values-mdpi, values-nodpi, values-hdpi, values-xhdpi)。我的应用中有一项活动可以显示文本。我有文字滚动。我在values-mdpi 中设置了文本大小的值。但是当我在模拟器3.2"QVGA(ADP2)(320 x 480:mdpi) 上运行我的应用程序时,滚动文本工作。但是当我在模拟器5.1"WVGA(480 x 800:mdpi) 上运行我的应用程序时,所有文本都在半屏上并且文本的大小很小。我认为android选择布局取决于大小和文本大小取决于values-mdpi。尽管它们属于mdpi,但我希望大屏幕上的文本大小。

我的整个应用都处于纵向模式。 ldpi 和 hdpi 也是如此。请提供一般解决方案。

【问题讨论】:

标签: android android-layout font-size


【解决方案1】:

在 res 文件夹中创建像 values-mdpivalues-w360dp-mdpi 这样的文件夹。

在两个文件夹上创建dimens.xml。

并将其粘贴到 values-mdpi dimens.xml 中的代码下方

<?xml version="1.0" encoding="utf-8"?>
       <resources>
           <dimen name="textsize">14sp</dimen>

       </resources>

并将其粘贴到 values-w360dp-mdpi dimens.xml 中的代码下方

<?xml version="1.0" encoding="utf-8"?>
       <resources>
           <dimen name="textsize">18sp</dimen>
       </resources>

然后在您的活动上应用文本大小

android:textSize="@dimen/textsize"

【讨论】:

  • 你能解释一下吗?
  • w360 平均宽度至少 360dp?
【解决方案2】:

您仅使用纵向版本,如果您为所有设备使用相同的设计结构您不需要为每个像素密度添加四种不同的布局

创建支持不同屏幕尺寸的 android values 文件夹。

此处为具有 ANDROID 版本 3.1 或更低版本的 7 英寸 Android 设备的第一个文件夹。第二个适用于 android 版本大于 3.1 的 7 英寸设备。 命名约定 sw600 表示最小宽度为 600。因此此文件夹适用于宽度大小 600 到 720。因此创建 values-sw480dpvalues-sw320 将值添加到 dimens.xml 文件.

Android 运行时会自动从适当的文件夹中选择值。

【讨论】:

    【解决方案3】:

    只需创建像layout, layout-small, layout-large, layout-xlarge 这样的布局文件夹,然后创建像values, values-ldpi, values-mdpi, values-hdpi, values-xhdpi 这样的值文件夹。然后您可以根据高度或宽度创建值文件夹并属于ldpimdpivalues-w360dp-mdpi or values-h600dp-mdpi。然后android会根据屏幕大小自动选择布局,并根据高度或宽度自动选择值。

    【讨论】:

      【解决方案4】:

      尝试将其添加到您的 AndroidManifest.xml 中

      <supports-screens android:anyDensity="true"
                        android:largeScreens="true"
                        android:normalScreens="true"
                        android:resizeable="true"
                        android:smallScreens="true"/>
      

      【讨论】:

      • 你能提供来源吗?
      【解决方案5】:

      只是你的values (values, values-ldpi, values-mdpi, values-nodpi, values-hdpi, values-xhdpi), 它们为每个密度指定文本字体大小。

      使用基于屏幕大小的文本大小规范,例如:values (values, values-small, values-normal, values-large, values-xlarge)

      或者,为了在各种设备上获得更好的结果,您可以将密度与屏幕尺寸结合起来,例如:values-normal-mdpi

      就是这样

      【讨论】:

        【解决方案6】:

        这样试试

        步骤:1 首先在res 文件夹=> values => dimensions.xml=> 创建dimensions.xml 文件到values folder,根据文本大小创建如下代码

             <?xml version="1.0" encoding="utf-8"?>
               <resources>
                   <dimen name="textsize">8sp</dimen>
                   <dimen name="text">10sp</dimen>
                   <dimen name="comments">7sp</dimen>
               </resources>
        

        步骤:2 在java文件中写下这一行

              TextView textviewtwo = (TextView)findViewById(R.id.sponsertwo_txt);
        textviewtwo.setText("brought to you by");    
        textviewtwo.setTextSize(TypedValue.COMPLEX_UNIT_PX,
          getResources().getDimension(R.dimen.textsize));
              // in place of textsize use text and comments what ever we want depending on size. use like text size                  adjust automatically in all devices 
        

        【讨论】:

        • 我想通过使用布局和值来做到这一点。我是怎么做到的?
        【解决方案7】:

        实际上,您不需要创建所有这些布局目录来处理文本大小。只需坚持正常的(布局)并为您想要支持的每种分辨率创建具有不同文本大小的不同值目录。所以你必须在其他值目录中添加文本大小。

        在运行时,Android 会选择正确的文本大小。

        【讨论】:

        • 你不懂。以上2个设备大小不同,但属于mdpi。所以来自 values-mdpi 的文本大小使用高于 2。但设备 3.2" 具有正常大小的屏幕,因此文本看起来不错,5.1" 具有大屏幕。所以文字大小非常小。
        • 尝试使用另一个值目录(values-large)
        • 但我不知道该怎么做。
        【解决方案8】:

        使用此代码,它根据屏幕大小工作:

        Display display = getWindowManager().getDefaultDisplay();
        int displayWidth = display.getWidth();
        
        yourTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX,(float)(displayWidth * 6/100));
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-02-10
          • 2011-09-08
          • 2019-05-09
          • 2014-09-15
          • 1970-01-01
          • 1970-01-01
          • 2011-12-08
          相关资源
          最近更新 更多