不同屏幕Android中的textview大小

时间:2014-11-04 12:50:33

标签: android textview

我生病了,找不到最好的方法,将textView用于不同的屏幕密度和分辨率。 我试过了:

  • 为不同的密度创建不同的文件夹并放置"尺寸"。例如,文件夹值-xhdpi和dimension.xml,values-ldpi和dimension.xml。在我的代码上,我以编程方式获取textView.setTextSize(getResources()。getDimensions(R.id.myDimension); 在xml,20sp

  • 如上例所示,但是放了这个textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources()。getDimensions(R.id.myDimension);

  • 添加textAppearence,如textView.setTextAppearance(this,android.R.style.TextAppearance_Large);

但是所有的例子,我都得到了我没想到的东西,因为得到的文字比较大。如下图所示

Example

除非我在适当的xml中更改我的维度,否则会发生这种情况。但是,我应该遵循什么样的结构? 例如,在drawbles中,人们建议使用比例为3:4:6:8,但在这里我没有遵循结构。 什么是最好的实践?人们通常做什么..? 我想要的是?这个.. What i want

2 个答案:

答案 0 :(得分:0)

您必须使用与像素无关的单位作为文字大小。使用 sp 单位创建尺寸并以编程方式加载它们。

要支持多个屏幕,请查看in android documentation

对于sp单位说:

Similarly, you should prefer the sp (scale-independent pixel) to define text sizes. 
The sp scale factor depends on a user setting and the system scales the size 
the same as it does for dp.

换句话说,你有两个

您必须在值文件维度元素中声明。如果您不喜欢结果并且想要为每个屏幕类别特定的文本大小声明,则必须执行以下操作:

  1. 您可以为每个dpi创建一个值文件夹。例如,文件夹名称可以是:values-hdpi,values-xhdpi等。
  2. 在values文件中,您可以放置​​一个dimens.xml文件,您将在其中声明为

     <resources>
        <dimen name="small_font_size"=10sp></dimen>
        <dimen name="large_font_size"=20sp></dimen>
     </resources>
    

答案 1 :(得分:0)

由你决定。您可以为不同的屏幕尺寸创建不同尺寸的文件。例如:

values-sw720dp 10.1“平板电脑1280x800 mdpi和更大

values-sw600dp 7.0“平板电脑1024x600 mdpi和更大

values-sw480dp 5.4“480x854 mdpi and greater

从维度文件中获取TextView中的值。

相关问题