Android使用错误的布局?

时间:2016-08-30 07:38:24

标签: java android android-layout layout

我需要为不同的手机创建不同的布局。

我购买了3部手机和屏幕尺寸:

SONY XPERIA Z:
08-30 09:04:05.258 1008-1008/pl.graphicbox.polamp I/LAYOUT: widthPixels  = 1080
08-30 09:04:05.258 1008-1008/pl.graphicbox.polamp I/LAYOUT: heightPixels = 1776
08-30 09:04:05.258 1008-1008/pl.graphicbox.polamp I/LAYOUT: densityDpi   = 480
08-30 09:04:05.258 1008-1008/pl.graphicbox.polamp I/LAYOUT: xdpi         = 442.451
08-30 09:04:05.258 1008-1008/pl.graphicbox.polamp I/LAYOUT: ydpi         = 443.345

Samsung s3:
08-30 09:05:00.179 21820-21820/pl.graphicbox.polamp I/LAYOUT: widthPixels  = 480
08-30 09:05:00.179 21820-21820/pl.graphicbox.polamp I/LAYOUT: heightPixels = 800
08-30 09:05:00.179 21820-21820/pl.graphicbox.polamp I/LAYOUT: densityDpi   = 240
08-30 09:05:00.179 21820-21820/pl.graphicbox.polamp I/LAYOUT: xdpi         = 234.0
08-30 09:05:00.179 21820-21820/pl.graphicbox.polamp I/LAYOUT: ydpi         = 236.0

Sony xperia M
08-30 09:08:25.964 5391-5391/pl.graphicbox.polamp I/LAYOUT: widthPixels  = 720
08-30 09:08:25.964 5391-5391/pl.graphicbox.polamp I/LAYOUT: heightPixels = 1184
08-30 09:08:25.964 5391-5391/pl.graphicbox.polamp I/LAYOUT: densityDpi   = 320
08-30 09:08:25.964 5391-5391/pl.graphicbox.polamp I/LAYOUT: xdpi         = 345.056
08-30 09:08:25.964 5391-5391/pl.graphicbox.polamp I/LAYOUT: ydpi         = 342.231

我创建了3个布局:

layout-sw200dp
layout-sw300dp
layout-sw400dp

但所有手机使用相同的布局布局-sw300dp。

enter image description here

有人可以解释一下我做错了什么以及如何解决这个问题。 THX。

1 个答案:

答案 0 :(得分:2)

看起来所有手机的宽度都在300到400 dp之间,当它们使用sw300dp时它是正确的。 要进行检查,请将dpWidth添加到日志中:

Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics ();
display.getMetrics(outMetrics);

float density  = getResources().getDisplayMetrics().density;
float dpWidth  = outMetrics.widthPixels / density;