我是新手使用多个屏幕并需要以下方面的帮助:
我有2台设备:
三星S4
三星平板电脑:
我的问题是两个设备的值都是从同一个尺寸文件中提取的。
请告诉我每个值目录的名称应该是什么?
我试过了:
值-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);
谢谢。
答案 0 :(得分:1)
您只需要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"