2012-05-09 15 views
4

私は、密度に依存しないピクセルを自分のアクティビティのピクセルに変換する必要があります。 は、私は別の方法同じ値を持つピクセルにディップを変換する

Resources r = getResources(); 
float pix = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 35,r.getDisplayMetrics()); 
value = Math.round(pix); 

の両方が同じ値をもたらすさを試した私のonCreate

float pix = dipValue * getResources().getDisplayMetrics().density; 
pixel = Math.round(pix); 

にこの方法を使用してみました。私は問題は方法ではなく、リソースと思う。私は

<supports-screens android:resizeable=["true"| "false"] 
       android:smallScreens=["true" | "false"] 
       android:normalScreens=["true" | "false"] 
       android:largeScreens=["true" | "false"] 
       android:xlargeScreens=["true" | "false"] 
       android:anyDensity=["true" | "false"] 
       android:requiresSmallestWidthDp="integer" 
       android:compatibleWidthLimitDp="integer" 
       android:largestWidthLimitDp="integer"/> 

のようにマニフェストファイルに変更を加える必要があることは鉱山に似questionがあります。しかし、それは私の問題を解決するものではありません。私を助けてください。

+0

が重複する可能性:// stackoverflowの.com/questions/8399184/convert-dip-to-px-in-android) – tir38

答えて

5

を使用すると、濃度に依存しない画素は「中」密度ためのシステム が想定しているベースライン密度 160解像度スクリーン上の1つの物理画素に相当する

px = dp * (dpi/160) 

を試してみました画面。実行時には、実際に の画面の密度に基づいて、必要に応じて、システムが透過的にdp単位のスケーリングを処理します。 dp単位を画面 ピクセルに変換することは簡単です:px = dp *(dpi/160)。例えば、240dpiの スクリーンでは、1dpは1.5物理ピクセルに等しい。アプリケーションのUIを定義するときには常にdp 単位を使用して、さまざまな濃度の画面上に のUIが正しく表示されるようにする必要があります。

詳細はthis linkをご確認ください。

4

あなたはdimen.xmlにDP値を追加し、それは簡単だ

int pixels = getResources().getDimensionPixelSize(R.dimen.idDimension);

を使用することができます... [アンドロイドでPXにディップを変換](HTTPの

関連する問題