2017-08-04 36 views
0

我非常努力地嘗試處理屏幕的像素密度。如何讓我的應用程序在所有設備上看起來都一樣?我想答案可能是改變單位從DP到PX:Android:如何計算像素密度

public static int dpToPx(int dp) { 
    return (int)(dp/Resources.getSystem().getDisplayMetrics().density); 
} 

但這似乎並沒有要麼工作,我似乎無法找到如何處理這個答案。

回答

1

如果您處於活動或片段中,則可以調用getResources()方法。然後,你可以通過下面的方法DP轉換PX

公式: PX = DP *密度

public static int dpToPx(int dp) { 
    return (int)(dp * getResources().getDisplayMetrics().density); 
} 
+0

嘗試這樣做,也沒有工作。然後我意識到它是** px **到** dp **,而不是我想要的。而我發現的是奇特的。當我用'pxToDp(act.getResources()。getDisplayMetrics()。widthPixels)'方法打印顯示尺寸時,無論分辨率設置爲什麼,我都會始終得到731。但是,當我在調用'RoundRect'的Path對象的座標和維度上調用'pxToDp'方法時,尺寸和座標不在​​相同的相對位置。爲什麼是這樣? – Ryan