這時想將 DIP 轉換為 pixel,可直接套用下列的函式。
public int convertDIPtoPixel(int dp) { final float scale = getResources().getDisplayMetrics().density; int pixels = (int) (dp * scale + 0.5f); return pixels; }
公式: density = dpi/160, px = dp * density
density 是指每 dpi 代表多少 pixel,在 160 dpi 的裝置上,1 dpi = 1 pixel,density 為 1;
在 320 dpi 的裝置上,1 dpi = 2 pixel,所以 density 為 2。
詳見: http://developer.android.com/reference/android/util/DisplayMetrics.html#density
沒有留言:
張貼留言