2017-02-13 63 views
0

我有文件夾:值(表示xxhdpi)。使用尊重值在dimens.xml中創建。在xxhdpi設備上測試了該應用,效果很好。Android錯誤選擇dimen

然後我用他們的dimens.xml文件創建一個values-xxxhdpi。問題是,當我再次使用xxhdpi設備進行測試時,它正在取值於values-xxxhdpi文件夾中的值而不是值(默認)文件夾中的值。

隨着xhdpi發生同樣的問題。

我在做什麼錯?

感謝

回答

0

也許你錯了命名的文件夾。

嘗試values而不是value

因此請嘗試使用values-xxhdpivalues-xxxhdpi作爲文件夾的名稱。

+0

對不起,我編輯去的問題,我有價值觀的文件夾。我沒有values-xxhdpi,我只有值和值 - xxxhdpi。 – user3240604

0

你確定你的設備在xxxhdpi上運行嗎?

xxxhdpi被定義爲如下所示:

  • MDPI 379.00 X 379.00像素
  • tvdpi 504.54 X 504.54像素
  • HDPI 568.50 X 568.50像素
  • xhdpi 758.00 X 758.00像素
  • 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());