我有两个layout文件夹:layout-sw800dp和layout-sw600dp,所以我的应用程序对Samsung Galaxy Tab 7和Nexus 7这两种设备都使用layout-sw600dp,它使Nexus 7的字体和样式变大了!如何区分这两个设备的布局?
提前致谢

最佳答案

您可以从以下代码检查10和7英寸工作台的屏幕尺寸

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
float widthInInches = metrics.widthPixels / metrics.xdpi;
float heightInInches = metrics.heightPixels / metrics.ydpi;
double sizeInInches = Math.sqrt(Math.pow(widthInInches, 2)
            + Math.pow(heightInInches, 2));


在这里,sizeInInches可以为您提供适当的桌子英寸,需要0.5英寸的缓冲,并根据以下条件进行调节。

boolean is7inchTablet = sizeInInches >= 6.5 && sizeInInches <= 7.5;


并且每当您需要检查它时,只需进行以下检查。

if(is7inchTablet){
    // do whatever for the 7-inch tablet
}else{
    // do whatever for the 10-inch tablet
}

关于android - 具有相同dpi的两个设备的差异布局,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16515216/

10-11 21:38