Android(アンドロイド)開発では通常のWebサイト制作では聞きなれない
dp(dip)という単位を使用することがあります。
Androidでの基本的な5つの解像度
【ldpi】【mdpi】【hdpi】【xhdpi】【xxhdpi】の
各画面で表示する際の共通単位になるようですが、
このdp(dip)の値をpxに変換する必要に駆られることがあり計算用ツールを作ったので、
ここで紹介するまでもないかもしれませんが、メモとして紹介しておきます。
dp(dip) → px 変換 [dp(dip)] → [px] Conversion
dp(dip) → px 変換 [dp(dip)] → [px] Conversion
計算させる「dp(dip)」の値をフォームに入力すると
下部の表に画面解像度(ピクセル密度)ごとの
【ldpi】【mdpi】【hdpi】【xhdpi】【xxhdpi】
それぞれの場合での表示する「px」単位が計算されます。
単位は整数にならないパターンもあるので
「小数点切捨て」「四捨五入」「そのまま」の
3パターンで計算するようにしています。
(計算自体は単純なかけ算です)
ピクセル密度はCSSの「device-pixel-ratio」で判別して
値を振り分けることが出来るので
メディアクエリーを使って解像度ごとに
以下のように振り分けることもできます。
【「10dp」を「px」に変換したの場合の例】 @media screen and (-webkit-min-device-pixel-ratio: 2.0) { /* ピクセル密度2.0以上 =【xxdpi(超超高解像度)】の指定 */ width: 30px; } @media screen and (-webkit-max-device-pixel-ratio: 2.0) { /* ピクセル密度2.0以下 =【xdpi(超高解像度)】の指定 */ width: 20px; } @media screen and (-webkit-max-device-pixel-ratio: 1.5) { /* ピクセル密度1.5以下 =【hdpi(高解像度)】の指定 */ width: 15px; } @media screen and (-webkit-max-device-pixel-ratio: 1.0) { /* ピクセル密度1.0以下 =【mdpi(中解像度)】の指定 */ width: 10px; } @media screen and (-webkit-max-device-pixel-ratio: 0.75) { /* ピクセル密度0.75以下 =【ldpi(低解像度)】の指定 */ width: 7px; }
dp(dip)の値に関しては
以下の記事がとても分かりやすく説明されています。
【参考記事】Androidのdip(dp)ってpxに換算すると何なのさ!-めんどくさいのでDip Calc作りました- - pucchon design
自分でもdp(dip)の単位については
まだあまり慣れていない現状です・・・
「dp(dip)」の値を「px」に変換させる際にぜひ。。。