是否可以在不同的屏幕分辨率下对同一字符串和语言使用不同的文本?
示例:以单词Cancel为例,它在德语中是Abbrechen。是否可以在更高的屏幕密度中使用Abbrechen,如xxhdpi和精简字Abrech 我曾尝试在文件夹中定义两个具有相同名称和字符串的语言文件:values de和values de xxhdpi,但这不起作用,因为语言优先,所有手机都使用相同的定义,在这种情况下,value de xxhdpi中定义的文件会覆盖value de
您可以使用dimens.xml
资源。例如,为德语创建res/values-de/dimens.xml
文件,为法语创建res/values-fr/dimens.xml
文件。
在dimens.xml中
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="f_size">16sp</dimen>
</resources>
在Layout.xml中
<TextView
android:textSize="@dimen/f_size"/>
这对有帮助吗
编辑:
字符串依赖于屏幕分辨率:
float density = context.getResources().getDisplayMetrics().density;
if (density >= 4.0) {
tv1.setText(getString(R.string.xxxhdpiXY));
tv1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
}
if (density >= 3.0) {
tv1.setText(getString(R.string.xxhdpiXY));
tv1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
}
if (density >= 2.0) {
tv1.setText(getString(R.string.xhdpiXY));
tv1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15);
}
if (density >= 1.5) {
tv1.setText(getString(R.string.hdpiXY));
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
}
if (density >= 1.0) {
tv1.setText(getString(R.string.mhdpiXY));
tv1.setTextSize(TypedValue.COMPLEX_UNIT_SP, 13);
}