2016-03-29 10 views
2

私は自分のアプリケーションで描画しようとしています。私はブラシのサイズをデバイスの画面の10%にしたいと思っています。 dpについては、アンドロイドデベロッパーガイドHereを読んでいます。Androidは描画のための画面サイズを計算します

 getScreenSizeDpi(); 
     m_brushSize = (int)(area * brush_percentages)/100; 
     circle_area = m_brushSize * m_brushSize * Math.PI; 
} 

と方法:

private void getScreenSizeDpi() { 
    DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); 
    float dpHeight = displayMetrics.heightPixels/displayMetrics.density; 
    float dpWidth = displayMetrics.widthPixels/displayMetrics.density; 

    area = dpHeight * dpWidth; 
} 

しかし、私が望むすべては感謝すべて、ブラシサイズの円を得ることです。

答えて

1

あなたはActivity

Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 
int width = size.x; 
int height = size.y; 

内にあるかどうか、あなたがActivity内でない場合Displayオブジェクト

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); 
Display display = wm.getDefaultDisplay(); 

を得るために、代わりにこれを使用し、画面サイズを取得するには、次のコードを使用します次にブラシのサイズを設定する

brush_size = 0.1 * width;// or 0.1 * height 
+0

いいえ、私はbrの円が必要ですとにかくおかげさまでushサイズ –

+0

あなたが内接円の面積の10%を必要とするなら、このようなものが必要です。0.1 *(Math.PI * Math.pow(Math.min(width、height)、2)) ' –

関連する問題