我不熟悉使用多个屏幕,因此需要以下方面的帮助:
我有2台设备:
三星S4
显示类别:正常
最小宽度:360dp
分辨率:1080 * 1920
密度等级:XXHDPI
浓度:442dpi
三星平板电脑:
显示类别:大
最小宽度:600dp
分辨率:600 * 1024
密度等级: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文件条目:
值-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);
谢谢。
最佳答案
您只需要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"
关于android - Android使屏幕变暗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46022710/