Android 相同语言但不同屏幕分辨率的不同资源
是否可以在不同的屏幕分辨率下对相同的字符串和语言使用不同的文本 例如: 以Cancel这个词为例,在德语中是Abbrechen。是否有可能在较高的屏幕密度中使用Abbrechen,如xxhdpi和简化的单词Abbrech。剩下的呢Android 相同语言但不同屏幕分辨率的不同资源,android,size,screen,resolution,Android,Size,Screen,Resolution,是否可以在不同的屏幕分辨率下对相同的字符串和语言使用不同的文本 例如: 以Cancel这个词为例,在德语中是Abbrechen。是否有可能在较高的屏幕密度中使用Abbrechen,如xxhdpi和简化的单词Abbrech。剩下的呢 我尝试在文件夹中定义两个名称和字符串相同的语言文件:values de和values de xxhdpi,但这不起作用,因为语言优先,所有手机使用相同的定义,在这种情况下,在values de xxhdpi中定义的值将覆盖values de中的值,您可以使用dimen
我尝试在文件夹中定义两个名称和字符串相同的语言文件:values de和values de xxhdpi,但这不起作用,因为语言优先,所有手机使用相同的定义,在这种情况下,在values de xxhdpi中定义的值将覆盖values de中的值,您可以使用
dimens.xml
资源。例如,为德语创建文件res/values de/dimens.xml
,为法国创建文件res/values fr/dimens.xml
在dimens.xml中
谢谢,但我的问题不在于不同的语言,而在于同一种语言在不同的分辨率下。我想根据设备屏幕分辨率对同一字符串/语言使用两个不同的值。哦,好的。我认为这只能通过代码实现。为多分辨率创建相同的字符串,并将其设置为
getResources().getDisplayMetrics()
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="f_size">16sp</dimen>
</resources>
<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);
}