2011-11-01 52 views
2

我正在使我的應用程序與平板電腦兼容,並且我正在嘗試瞭解執行此操作的最佳方式。使用XML的平板特定的ImageView寬度/高度/等值?

我有一個GridView與每個圖像下的圖像和文本。目前,每個圖像的高度設置爲120dp而不是wrap_content,因此它會縮放並正確對齊到其高度,一切看起來均勻。方向改變效果很好,GridView自動從2xN變爲3xN。

現在我想將它放在平板電腦上,根據方向(在10英寸平板電腦上),GridView最終爲5xN和7xN。但是,爲了使GridView看起來更好,我寧願更改圖像高度到一個更大的值(比如300dp),並且有更少的項目是更大的尺寸。這樣做的最好方法是什麼?

我不想只拉出元素並複製其所有值,只更改一個。理想情況下,我希望能夠將高度值放入像strings.xml和strings-xlarge.xml之類的東西,然後從佈局中引用它。這可能嗎?我真的很討厭複製代碼/資源。

謝謝。

+0

您應該可以使用其他尺寸的xml文件(tablet/hdpi/mdpi/ldpi),這些尺寸會根據您加載應用程序的設備類型加載。與在視圖加載之前替換字符串的方式相同,也應該可以使用「height」和「width」參數。你試過了嗎? – Andre

+0

請你澄清一下嗎?你的答案不清楚。我應該在哪裏放置維度值? –

回答

6

您要找的是dimen標籤。它與字符串標籤類似,但是對於尺寸。您可以在值/ dimens.xml是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <dimen name="image_size">120dp</dimen> 
</resources> 

和價值,XLARGE/dimens.xml:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <dimen name="image_size">300dp</dimen> 
</resources> 

你的XML可以通過@捫/ IMAGE_SIZE和一切引用尺寸將照顧你。您也可以通過上下文的getResources()。getDimension(R.dimen.image_size)以編程方式訪問它。

請注意,從3.2開始,您可以在資源名稱中使用像素需求(例如w720dp),而不是像xlarge那樣的「桶」。更多信息here

+0

正是我需要的,謝謝。 –

相關問題