2013-05-11 36 views
0

我在Android中有一個GridView,其中的對象在屏幕旋轉期間更改大小。我也希望在這些對象之間沒有差距。我希望每個視圖都在150-200dp左右。確保大小是屏幕大小的一個因素

起初,我在想,我可以得到總屏幕寬度(int totalWidth = getWindowManager().getDefaultDisplay().getWidth();),並使用像m_IconSize = Math.min(totalWidth/4, 175);有所收穫最大圖標大小,然後用gridView.setNumColumns(totalWidth/m_IconSize);設置網格視圖的列。

但是,對於高密度分辨率或水平方向,它總是默認爲175,這不是寬度的一個因素,並且它在GridView中的每個對象之間都會有間隙。我怎樣才能讓它變得無縫?

回答

0

嗯在景觀中它會比175更大(任何有700多像素的屏幕都可以),所以175會被應用。在更一般的說明中,您不應該使用固定的像素尺寸,在您的dimens.xml中創建一個條目,然後讀取它int pixels = getResources().getDimensionPixelSize(R.dimen.whatever);,但這隻會根據密度進行調整,而不是對水平空間進行調整。

聽起來像你應該嘗試找到最大數量的圖標,你可以適合在一個近似的大小,然後使用該大小,而不是總是試圖使用4.