2011-03-31 136 views
0

當指定按鈕和工具欄的大小時,我一直在使用XML佈局文件的「設備無關像素」(dip)功能。通過使用浸入,我可以指定GUI組件的物理大小,這對於確保組件始終可讀和可點擊以適用於所有屏幕大小非常有用。例如,我的應用程序有一個水平工具欄,頂部大約50dip高,並有幾個40dipx40dip按鈕。擴大大屏幕按鈕的佈局?

但是,實際大小足以在小屏幕上看到並點擊的按鈕在平板電腦上不太可用。例如,我的工具欄將包含大量的空白,這些按鈕很難看清(因爲您傾向於將平板電腦遠離您的臉部),並且在實踐中按鈕很難點擊(因爲它們與屏幕)

是否有任何解決方案獨立的方法來處理這個問題?

我知道我可以使用「layout_weight」來拉伸組件,所以我可以指定要使用的屏幕的百分比,但這對於很多按鈕來說非常麻煩(同樣,我的按鈕需要是方形的),如果我必須通常手動完成此操作。我可以爲每個設備使用不同的佈局文件,但這是一個痛苦。

回答

1

是否有解決方案獨立的方法來處理這個問題?

使用維度和可繪製資源。

你還沒有指出你的按鈕是如何「40dipx40dip」。

如果通過特定的高度和寬度設置它們,而不是在佈局或樣式中使用40dip,請使用@dimen/toolbar_btn。然後在res/values/dimens.xml中將其定義爲40dipres/values-large/dimens.xml(或者可能是res/values-large-land/dimens.xml)將其定義爲60dip或任何適用於您的內容。

如果由於圖像按鈕是「40dipx40dip」,那麼它只是爲平板電腦創建更大的圖像並將其放入資源目錄中,例如res/drawable-large-mdpi/資源目錄。

+0

我在我的佈局文件中設置了40dip大小,例如「 rbcc 2011-03-31 20:39:38

+0

@rebeccamaher:「否則我將不得不爲每個屏幕尺寸手動調整所有尺寸」 - 是的。考慮到只有四種屏幕尺寸,這似乎不是一個無法克服的任務。 「我怎麼知道有多少像素可以將圖像文件放在可繪製文件夾中」 - 使它們比「40dip」的任何圖像文件大50%,因爲60比40大50%。 – CommonsWare 2011-03-31 20:47:33

+0

我的意思是是我假設你說圖像應該以40x40dpi顯示,Android會從適當的文件夾中獲取圖像文件,文件應該有多少像素以便不會出現向上或向下縮放?我對dpi,像素和dpi文件夾之間的關係感到困惑。 – rbcc 2011-03-31 21:01:22