Android Wrong选择了dimen

时间:2017-02-13 21:11:01

标签: android dimensions

我有文件夹:values(代表xxhdpi)。使用尊重值在dimens.xml内创建。在xxhdpi设备中测试应用程序并且效果很好。

然后我用他们的dimens.xml文件创建一个values-xxxhdpi。问题是,当我再次使用xxhdpi设备进行测试时,将从values-xxxhdpi文件夹中的dimensions获取值,而不是在值(默认)文件夹中。

使用xhdpi会出现同样的问题。

我做错了什么?

由于

2 个答案:

答案 0 :(得分:0)

也许您将文件夹命名为错误。

尝试使用 point.leftRange = {}; point.leftRange.min = point.pan - range > 0 ? point.pan - range : Math.PI - point.pan - range; point.leftRange.max = point.leftRange.min - Math.PI/2 - range > 0 ? (point.pan - range)%Math.PI : (Math.PI - (point.leftRange.min - Math.PI/2 - range))% Math.PI; console.log(point.leftRange); point.rightRange = {}; point.rightRange.min = (point.pan + range) % Math.PI; point.rightRange.max = (point.rightRange.min + (Math.PI/2 - range)) % Math.PI; console.log(point.rightRange); 代替 var opp = (point.pan - Math.PI/2)%Math.PI; opp = opp > 0 ? opp : Math.PI - opp; if(getCurrentPan() > point.pan && getCurrentPan() < opp) console.log('greater'); else if(getCurrentPan() < point.pan && getCurrentPan() > opp) console.log('less');

请尝试使用valuesvalue作为文件夹的名称。

答案 1 :(得分:0)

您确定您的设备在xxxhdpi上运行吗?

xxxhdpi的定义如下:

  • mdpi 379.00 x 379.00 px
  • tvdpi 504.54 x 504.54 px
  • hdpi 568.50 x 568.50 px
  • xhdpi 758.00 x 758.00 px
  • xxhdpi 1137.00 x 1137.00 px
  • xxxhdpi 1516.00 x 1516.00 px

所以也许你必须检查你的决议:

DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
float dpHeight = displayMetrics.heightPixels / displayMetrics.density;
float dpWidth = displayMetrics.widthPixels / displayMetrics.density;

StringBuilder bld = new StringBuilder();
bld.append(String.format("Height: %s %s", dpHeight, System.getProperty("line.separator")));
bld.append(String.format("Width:  %s %s", dpWidth, System.getProperty("line.separator")));

String densityType = "";
switch (displayMetrics.densityDpi)
{
    case DisplayMetrics.DENSITY_LOW:
        densityType = "LDPI";
        break;
    case DisplayMetrics.DENSITY_MEDIUM:
        densityType = "MDPI";
        break;
    case DisplayMetrics.DENSITY_TV:
    case DisplayMetrics.DENSITY_HIGH:
        densityType = "HDPI";
        break;
    case DisplayMetrics.DENSITY_XHIGH:
    case DisplayMetrics.DENSITY_280:
        densityType = "XHDPI";
        break;
    case DisplayMetrics.DENSITY_XXHIGH:
    case DisplayMetrics.DENSITY_360:
    case DisplayMetrics.DENSITY_400:
    case DisplayMetrics.DENSITY_420:
        densityType = "XXHDPI";
        break;
    case DisplayMetrics.DENSITY_XXXHIGH:
    case DisplayMetrics.DENSITY_560:
        densityType = "XXXHDPI";
        break;
}

bld.append(String.format("Density:  %s %s(%s dpi)", displayMetrics.density, densityType, displayMetrics.densityDpi));
txtScreenInfo.setText(bld.toString());