2011-01-19 137 views
0

我想绘制一个填充所有Android手机上的整个屏幕的矩形,所有分辨率,所有屏幕密度。一切...... :) 首先从我理解的Canvas中获得。 drawRect用作像素中的尺寸值。希望这是正确的。 作为新的Android我想,如果我只是写这样就足够了,因为在这一刻没有比1024×1024像素更高分辨率的Android设备:以多种屏幕分辨率填充整个屏幕,密度

ScreenWidth = 1024; 
ScreenHeight = 1024; 
canvas.drawRect(0,0, ScreenWidth, ScreenHeight, mLoadPaint); 

但似乎在某些设备上此矩形不会填满整个屏幕。什么是奇怪的,我不能解释自己是这并不总是发生,但在一个时间点... 无论如何,似乎有代码有问题,所以我想改变它看起来像这一点,但现在肯定它metrics.widthPixels和metrics.heightPixels将解决我的问题:

wm = (WindowManager) getSystemService(WINDOW_SERVICE); 
DisplayMetrics metrics = new DisplayMetrics(); 
wm.getDefaultDisplay().getMetrics(metrics); 
canvas.drawRect(0,0, metrics.widthPixels, metrics.heightPixels, mLoadPaint); 

我想知道这是否是正确的,如果这段代码将覆盖所有屏幕,和矩形将填补整个屏幕。 当然,使用这种方法时,我还必须注意屏幕方向,因为当屏幕处于横向时,它们之间的值似乎会交换。

+0

出于好奇,进入*矩形的是什么?我相当肯定你的第二个选择(使用度量)应该可以工作,并且你不应该担心值被交换,只要你的drawRect方法是在方向改变时会被调用的地方(例如onCreate()) 。 – kcoppock 2011-01-19 19:27:45

回答

0

您可以尝试canvas.drawColor(int color)