我需要设备4.0,4.5和5.0的不同布局。
但是我使用以下方法检查了屏幕尺寸宽度:
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics ();
display.getMetrics(outMetrics);
float density = getResources().getDisplayMetrics().density;
float dpWidth = outMetrics.widthPixels / density;
并且
Sony Xperia Sp I have W: 360.0 H: 592.0
Sony Xperia Z I have the same result W: 360.0 H: 592.0
但屏幕尺寸不同,布局看起来非常不同。
如何正确地为此设备和其他设备尺寸创建不同的布局?
编辑:
在这种情况下,布局看起来非常不同,因为其中一部手机在设备设置中更改了FONT SIZE .. GG很好地播放了测试人员:)
总而言之。投票。
答案 0 :(得分:1)
Android使用与密度无关的像素(dp),因此应该很容易适应不同的尺寸。在您的res文件夹中创建layout-w320p等子文件夹,并在该文件夹中自定义您的布局以适应不同的屏幕尺寸。
始终尝试使用RelativeLayout而不是FrameLayout并相对于设备定位项目。项目大小应该是wrap_content,以便它自动缩小到设备。
答案 1 :(得分:1)
您可以根据确切的宽度(以像素为单位)提供不同的布局,因为您已经了解它们:
<强>实施例强>
res/layout/main_activity.xml # For handsets (smaller than 600dp available width)
res/layout-sw600dp/main_activity.xml # For 7” tablets (600dp wide and bigger)
res/layout-sw720dp/main_activity.xml # For 10” tablets (720dp wide and bigger)
res/layout/main_activity.xml # For handsets (smaller than 600dp available width)
res/layout-w600dp/main_activity.xml # Multi-pane (any screen with 600dp available width or more)
的官方Android文档
答案 2 :(得分:1)
索尼Xperia Sp我有W:360.0 H:592.0Sony Xperia Sp我有W:360.0 H:592.0
Sony Xperia Z我的结果相同W:360.0 H:592.0。
这不是屏幕尺寸..这完全取决于您的设备屏幕分辨率。
如果保持此屏幕分辨率,则应创建不同的布局或值文件
值-sw320dp-HDPI 价值sw320dp-xhdpi 值-sw320dp-xxhdpi
抽拉-sw320dp-HDPI
抽拉-sw320dp-xhdpi抽拉-sw320dp-xxhdpi