2011-01-19 140 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)