2014-11-04 30 views
0

我生病了,以找到最好的解决方案,将textView的密度和分辨率设置为相同的比例。 我想:不同屏幕中的textview的大小Android

  • 创建不同的文件夹,针对不同的密度,并把“尺寸”。例如,文件夹值-xhdpi和dimensions.xml,值-ldpi和dimensions.xml也是如此。在我的代码,编程,我得到textView.setTextSize(getResources()getDimensions(R.id.myDimension); 在XML中,20SP

  • 像上面的例子,但把这个textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources ().getDimensions(R.id.myDimension);

  • 添加textAppearence,像textView.setTextAppearance(这一点,android.R.style.TextAppearance_Large);

当然所有的例子,我得到了什么我没有料到,因为文字大一些,密度更大。如下图所示

Example

这种情况发生,除非我改变我的尺寸在适当的XML。但是,我应该遵循什么结构? 例如,在drawable中,人们推荐使用比例为3:4:6:8,但这里我没有遵循structre。 什么是最好的实践?人们通常做什么..? 我想要什么?这.. What i want

+0

是否要在各种分辨率屏幕上看到“20sp”大小相等? – DroidDev 2014-11-04 12:52:03

+0

你知道android – 2014-11-04 12:52:22

+0

DroidDev多设备支持,即时通讯问我是否把20sp通用,将在所有屏幕相同,或我需要定义所有屏幕 – user1851366 2014-11-04 17:00:15

回答

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创造价值的文件夹。例如,文件夹名称可以是:值,华电国际,价值观xhdpi等
  2. 值之内的文件,你可以放置一个dimens.xml文件,在其中你会声明为

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

因此,我应该使用不同的文件夹和不同的尺寸? – user1851366 2014-11-04 18:13:06

+0

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

0

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

值-sw720dp 10.1” 片剂1280x800的MDPI和更大

值-sw600dp 7.0” 片剂1024x600的MDPI和更大

值-sw480dp 5。4“480x854 mdpi和更大

然后从尺寸文件中获取TextView中的值。