読者です 読者をやめる 読者になる 読者になる

kojiko-android’s blog

開発中にハマった時の解決策や、忘れがちなことを残しておきます。

サイズをdp(dip)で指定する

ピクセル密度が異なる端末でも、対象の図形やビューをおおかた同じ大きさで表示させるには、dp値を指定します。


dp(dip)についての詳細は、ここでは省略させていただきます。

dp値から、実際のピクセル数を求める

ピクセル = getDisplayMetrics().density * (dpで指定したお好きな値);


getDisplayMetrics().densityで、倍率を取得できるようなので、dpで指定した任意の値に掛けてやることで、ピクセル数を取得できます。必要に応じて(int)にキャストします。


意外と、単純明快でわかりやすかった。


アクティビティの外から呼び出す場合は、

getResources().getDisplayMetrics()

たとえば、ゲームアプリを開発している際、ゲーム画面は画面を大きく使いたいけど、指で押すボタンは一定のサイズに固定したいとき、dpで指定することで、「小さすぎて押せない」、「大きくてかっこわるい」などが防げそうです。

また、マテリアルデザインのガイドラインではdp値が細かく決められているので、活用する機会は多そうです。