期待される結果
寸法が iPhone 4 Retina デバイス用に設計された UI ウィジェットがいくつかあります。単位はピクセルです。たとえば、幅 30 ピクセル、高さ 30 ピクセルのボタンです。デザイン スタイルを Android デバイスにコピーしたい、たとえば、前の 30 x 30 ボタンは、iPhone 4 Retina の画面幅の 30/640 = 4.6875%、画面の高さの 30/960 = 9.375% を占めます。 Android デバイスの画面幅の 4.6875%、画面の高さの 9.375% を占めます。
問題
次のコードで使用されている iPhone 4 Retina デバイスのサイズ倍率がわかりません。
コード
/**
* Change dip value to pixel value using density of current device
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
Log.d("ch", "density of current device : " + scale);
return (int) (dpValue * scale + 0.5f);
}
/**
* Change pixel value to dip value using density of current device
*/
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
Log.d("congliu", "density of current device : " + scale);
return (int) (pxValue / scale + 0.5f);
}
参照
iPhone 4 網膜
ppi: 326
解像度 : 640 x 960 ピクセル
サイズ倍率 : 不明
サムスンギャラクシー S
ppi: 233
解像度 : 480 x 800 ピクセル
サイズ倍率 : 1.5
サムスンギャラクシーノート
ppi: 285
解像度 : 800 x 1280 ピクセル
サイズ倍率 : 2.0