我需要为不同的手机创建不同的布局。
我购买了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。
有人可以解释一下我做错了什么以及如何解决这个问题。 的 THX。
答案 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;