2012-03-10 120 views
0

我有一個九個補丁圖像,我想在視圖中垂直居中,只有水平擴展。如何讓九個補丁圖像只能水平擴展?

我已經嘗試在九個補丁(上面的一個,下面的一個)上放置兩個可擴展區域,但取決於屏幕的密度,如果視圖最終成爲偶數個像素高,而九個補丁奇數高,然後圖像稍微打破。

任何想法?

感謝

回答

5

有效的9個補丁圖像必須有頂部至少一個可擴展區域和一個在左,你在右描繪區域,並在下面指定墊襯,看看this

如果你想要你的九個補丁圖像只能水平擴展,你將不得不準備你想要的高度和寬度一個像素一樣窄的原始圖像,並在頂部繪製一個點,另一個在左邊,注意我們在左邊指定的可擴展區域只是爲了使其成爲有效的九個補丁。現在,您可以將圖像放入佈局(將佈局的高度設置爲圖像的高度),爲圖像設置android:layout_graviy="center_vertical",然後將圖像水平放大。

+0

根據您的圖像,中心上的單個點可能是更好的選擇。 – 2012-03-14 11:21:20

+0

你試過了嗎?我不認爲這是可能的。對於九個補丁圖像,只能在圖像邊緣放置點。 – neevek 2012-03-14 11:40:00

+0

對不起,我實際上是在談論左邊的中心:) – 2012-03-14 12:00:36

0

如果你不想讓你的圖像垂直展開,那麼爲什麼不能直接使用9-patch來保持其他的爲fill_parent。

1

我想橫向擴展而不破壞左側和右側設計。 我所做的是在圖像的頂部和底部添加額外的1px(透明)。 之後,在左側,我在添加了額外填充的行上添加了黑點。以及圖像頂部的可展開區域。 我這樣做對所有的4個不同的密度和它的作品將很好:)

隨着radley's scale and fill的幫助下,我只畫黑線左側。

要使其垂直居中,請在您的文章中提到,只需在android:layout_graviy="center_vertical"中添加線性佈局或android:layout_centerVertical="true"即可獲得相對佈局。

希望它有幫助。