2016-12-26 186 views
0

我必須支持屏幕分辨率1280 * 800(dp)(KitKat)和1280 * 752(dp)(Lollipop)的Android設備。第一個是10.1英寸平板電腦,第二個是9.6英寸平板電腦。支持9.6英寸和10.1英寸的Android平板電腦

我對所有設備使用相同的佈局,並使用外部化維度來調整不同屏幕的佈局。

但我無法使用「values-sw720dp」和「values-sw800dp」來分隔設備。如果我使用sw800dp,它們都使用sw800dp維度文件夾中的維度值。

如何爲兩個設備分別設置尺寸?

+0

https://developer.android.com/調用getDeviceInches方法guide/practices/screens_support.html –

+0

@KushPatel爲什麼最小寬度爲752dp的設備從values-sw800dp文件夾獲取維度值? – Santosh

回答

0

獲取設備的screnn英寸編程和APPY尺寸

public static double getDeviceInches(Activity activity) { 
    DisplayMetrics metrics = getMetrics(activity); 
    int widthPixels = metrics.widthPixels; 
    int heightPixels = metrics.heightPixels; 

    float widthDpi = metrics.xdpi; 
    float heightDpi = metrics.ydpi; 

    float widthInches = widthPixels/widthDpi; 
    float heightInches = heightPixels/heightDpi; 

    return getDiagonalInches(widthInches, heightInches); 
} 

private static double getDiagonalInches(float widthInches, float heightInches) { 
    double diagonalInches = Math.sqrt((widthInches * widthInches) + (heightInches * heightInches)); 
    float roundedValue = (float) Math.round(diagonalInches); 
    return (double)roundedValue; 
} 

//From this, we can get the information required to size the display: 
private static DisplayMetrics getMetrics(Activity activity) { 
    DisplayMetrics metrics = new DisplayMetrics(); 
    activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    return metrics; 
} 

public static int convertDpToPx(Context context, int value) { 
    // Get the screen's density scale 
    final float scale = context.getResources().getDisplayMetrics().density; 
    // Convert the dps to pixels, based on density scale(0.5f is for rounding up value) (arrowWidth is 50dp) 
    int pxValue= (int) (value * scale + 0.5f); 
    return pxValue; 
} 

把你上面的代碼中的實用程序類,並從acitivty或片段類

相關問題