用于多个屏幕的Android维度文件

时间:2017-09-03 10:55:06

标签: android screens

我是新手使用多个屏幕并需要以下方面的帮助:

我有2台设备:

  1. 三星S4

    • display class:normal
    • 最小宽度:360dp
    • 分辨率:1080 * 1920
    • 密度等级:XXHDPI
    • 密度:442dpi
  2. 三星平板电脑:

    • 显示类:大
    • 最小宽度:600dp
    • 分辨率:600 * 1024
    • 密度等级:MDPI
    • 密度:168dpi
  3. 我的问题是两个设备的值都是从同一个尺寸文件中提取的。

    • 如果我的文字较小,手机上看起来不错,但平板电脑上的内容太小了
    • 如果我有大文字,它在平板电脑上看起来不错,但在手机上看起来太小

    请告诉我每个值目录的名称应该是什么?

    我试过了:

    值-sw360dp-xxhdpi 值-sw600dp-MDPI

    然而,这并没有什么不同。

    我有一个方法:

    public void setTextSize(Context context, TextView view, int textSizeInSp)
    {
      float spToPixel= TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, textSizeInSp, context.getResources().getDisplayMetrics());
    
      view.setTextSize(convertSpToPixels(spToPixel, getApplicationContext()));
    }
    

    我有2个文件条目:

    值-sw360dp-xxhdpi \梦诗

    <dimen name="font_english_large">20sp</dimen>
    

    值-sw600dp-MDPI \梦诗

    <dimen name="font_english_large">32sp</dimen>
    

    我通过调用以编程方式尝试更改文本大小:

    setTextSize(this, textView, (int)getResources().getDimension(R.dimen.font_english_large);
    

    谢谢。

1 个答案:

答案 0 :(得分:1)

您只需要valuesvalues-large,然后使用sp指标在相应的文件中添加字体大小。 例如,在values/dimens.xml添加

<dimen name="randrom_text_font_size">18sp</dimen>

并在values-sw600dp/dimens.xml中添加类似

的内容

<dimen name="randrom_text_font_size">28sp</dimen>

然后在你的java代码中:

textView.setTextSize(0,getResources().getDimension(R.dimen.randrom_text_font_size));

或XML格式

 android:textSize="@dimen/randrom_text_font_size"