我在两个非常不同的手机上测试我的应用程序:
Htc One X (running 4.1)
720x1280, density XHigh (320dpi)
Samnsung GT-S6500D running 2.3.6
320x480, density medium, (160dpi)
现在,我如何确保每个设备使用不同的布局文件夹? 我创造了 布局sw720dp, 布局sw600dp, 布局正常, ...
因为2.3没有考虑布局-sw320dp,我猜这需要layout-normal
,它确实如此。
现在为什么大屏幕没有采用layout-sw720dp文件夹?它也属于layout-normal
>>为什么呢?
我用
android:minSdkVersion="10"
android:targetSdkVersion="17"
并构建target = level 15 (4.0.3)
答案 0 :(得分:2)
获取屏幕分辨率并相应地转移它
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);
}
答案 1 :(得分:0)
我认为问题是你使用了两种不同的布局分类。 Normal用作广义屏幕密度,因为自3.2以来可用的布局基于最小屏幕尺寸。尝试删除正常的密度布局,看看会发生什么。 当然,如上面的答案建议,你总是可以从代码中扩展不同的布局。