我正在两台不同的手机上测试我的应用程序:
Htc One X (running 4.1)
720x1280, density XHigh (320dpi)
Samnsung GT-S6500D running 2.3.6
320x480, density medium, (160dpi)
现在,我如何确保每个设备使用不同的布局文件夹?我创造了layout-sw720dp,layout-sw600dp,layout-normal,…
因为2.3没有考虑layout-sw320dp,我猜它会考虑layout-normal
,它做得很好。
为什么大屏幕不显示layout-sw720dp文件夹?它也属于layout-normal
>>为什么?
我使用
android:minSdkVersion="10"
android:targetSdkVersion="17"
和构建target = level 15 (4.0.3)
获取屏幕分辨率并相应地调整
private final float LOW_LEVEL=0.75f;
private final float MEDIUM_LEVEL=1.0f;
private final float HIGH_LEVEL=1.5f;
float level = getApplicationContext().getResources().getDisplayMetrics().density;
if(level == LOW_LEVEL){
setContentView(R.layout.activity_login);
}else if(level == MEDIUM_LEVEL){
//do smoothing here
setContentView(R.layout.activity_login);
}else if(level == HIGH_LEVEL){
//do something here
setContentView(R.layout.activity_login);
}else {
//do something here
setContentView(R.layout.activity_logins);
}
我认为问题是你使用了两种不同的布局分类。Normal被用作广义屏幕密度,为什么3.2以来可用的布局是基于最小屏幕尺寸的。尝试删除正常密度布局,看看会发生什么。当然,你也可以按照上面的建议,从代码中膨胀出不同的布局。