Android 多屏幕尺寸文件

Android dimens file for multiple screens

我不熟悉使用多个屏幕,需要以下方面的帮助:

我有 2 台设备:

  1. 三星 S4

    • 显示class:正常
    • 最小宽度:360dp
    • 分辨率:1080 * 1920
    • 密度class:XXHDPI
    • 密度:442dpi
  2. 三星平板电脑:

    • 显示class:大
    • 最小宽度:600dp
    • 分辨率:600 * 1024
    • 密度class:MDPI
    • 密度:168dpi

我的问题是两个设备的值都是从同一个 dimens 文件中提取的。

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

我试过:

值-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 个 dimens 文件条目:

values-sw360dp-xxhdpi\dimens

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

values-sw600dp-mdpi\dimens

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

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

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

谢谢。

您只需要 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"