2017-08-04 6 views
0

私は実際に画面のピクセル密度を処理しようとしています。アプリケーションをすべてのデバイスで同じように見えるようにするにはどうすればよいですか?私の答えは、DPからPXに単位を変更するかもしれないと思った。Android:ピクセル密度の計算方法

public static int dpToPx(int dp) { 
    return (int)(dp/Resources.getSystem().getDisplayMetrics().density); 
} 

をしかし、これはどちらか動作していないようでしたし、私はこれを処理する方法についての答えを見つけるように見えることはできません。

答えて

1

アクティビティまたはフラグメントにいる場合は、getResources()メソッドを呼び出すことができます。次に、以下の方法でDPにピクセルを変換することができます:

式: PX = DP *密度

public static int dpToPx(int dp) { 
    return (int)(dp * getResources().getDisplayMetrics().density); 
} 
+0

これを試してみましたが、それは動作しませんでした。私はそれが** px **〜** dp **であることに気がつきました。私が見つけたのは特有のものでした。 'pxToDp(act.getResources()。getDisplayMetrics()。widthPixels)メソッドを使って表示寸法を印刷すると、解像度が何に設定されているかに関係なく、常に731が得られます。しかし、 'RoundRect'を描画する' Path'オブジェクトのコーディネートとディメンションで 'pxToDp'メソッドを呼び出すと、ディメンションと座標は同じ相対位置にはありません。どうしてこれなの? – Ryan

関連する問題