Android 多屏幕尺寸文件
Android dimens file for multiple screens
我不熟悉使用多个屏幕,需要以下方面的帮助:
我有 2 台设备:
三星 S4
- 显示class:正常
- 最小宽度:360dp
- 分辨率:1080 * 1920
- 密度class:XXHDPI
- 密度:442dpi
三星平板电脑:
- 显示class:大
- 最小宽度:600dp
- 分辨率:600 * 1024
- 密度class:MDPI
- 密度:168dpi
我的问题是两个设备的值都是从同一个 dimens 文件中提取的。
- 如果我的文本很小,在 phone 上看起来不错,但在平板电脑上看起来太小了
- 如果我的文字很大,在平板电脑上看起来不错,但在 phone
上就太小了
你能告诉我每个值目录的名称应该是什么吗?
我试过:
值-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);
谢谢。
您只需要 values
和 values-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"
我不熟悉使用多个屏幕,需要以下方面的帮助:
我有 2 台设备:
三星 S4
- 显示class:正常
- 最小宽度:360dp
- 分辨率:1080 * 1920
- 密度class:XXHDPI
- 密度:442dpi
三星平板电脑:
- 显示class:大
- 最小宽度:600dp
- 分辨率:600 * 1024
- 密度class:MDPI
- 密度:168dpi
我的问题是两个设备的值都是从同一个 dimens 文件中提取的。
- 如果我的文本很小,在 phone 上看起来不错,但在平板电脑上看起来太小了
- 如果我的文字很大,在平板电脑上看起来不错,但在 phone 上就太小了
你能告诉我每个值目录的名称应该是什么吗?
我试过:
值-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);
谢谢。
您只需要 values
和 values-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"