2016-03-29 3 views
2

Я пытаюсь рисовать в своем приложении, поэтому я хочу, чтобы размер моей кисти составлял 10% экрана устройства, что означает, что для всего устройства он должен быть разного размера. Я читал в руководстве разработчика Android 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

Нет, мне нужен круг бр размер ush, спасибо в любом случае –

+0

, если вам нужно 10% площади вписанного круга, вам понадобится что-то вроде этого: 0.1 * (Math.PI * Math.pow (Math.min (ширина, высота), 2)) ' –