最近、dpとspの違いみたいな検索結果でたどり着かれる方が多いので、
ついでにdpとpxの変換コードを掲載してみます。
dpからpxへの変換
/** * This method convets dp unit to equivalent device specific value in pixels. * * @param dp A value in dp(Device independent pixels) unit which will be converted to pixels * @param context Context to get resources and device specific display metrics * @return A float value to represent Pixels equivalent to dp according to device */ public static float convertDpToPixel(float dp, Context context){ Resources resources = context.getResources(); DisplayMetrics metrics = resources.getDisplayMetrics(); float px = dp * (metrics.densityDpi /160f); return px; }
pxからdpへの変換
/** * This method converts device specific pixels to device independent pixels. * * @param px A value in px (pixels) unit which will be converted to dp * @param context Context to get resources and device specific display metrics * @return A float value to represent db equivalent to px value */ public static float convertPixelsToDp(float px, Context context){ Resources resources = context.getResources(); DisplayMetrics metrics = resources.getDisplayMetrics(); float dp = px / (metrics.densityDpi / 160f); return dp; }
引数はfloatになっていますが、intの場合が多いと思うので、castしてください。
こちらの記事も参考にどうそ
↓
【Android】今さら聞けないpx、sp、dip、dpの違い
0 件のコメント:
コメントを投稿