2016-03-29 166 views
2

我想在我的應用程序中繪製,所以我希望我的筆刷大小爲設備屏幕的10%,這意味着對於所有設備它應該是不同的大小。 我在android開發人員指南Here閱讀了關於dp。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

不,我需要的圓圈ush大小,謝謝 –

+0

如果你需要10%的內切圓的面積,那麼你需要像這樣的'0.1 *(Math.PI * Math.pow(Math.min(width,height),2))' –