2016-03-29 121 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))' –