2010-03-21 83 views
2

是否有一個技巧讓9patch圖像具有單個像素邊框?9patch邊框問題

我不是在談論用來定義可拉伸區域和內容區域的單像素黑色邊框。我正在談論圖像本身。如果我創建的圖像周圍有1像素邊框,通常android會選擇其中一個邊緣並將其拉伸爲2(或更多)像素,即使我特別將邊緣從draw9patch的可拉伸區域中拉出效用。

這裏是我的意思的截圖;在這個屏幕截圖中,我在垂直LinearLayout中有兩個按鈕,它們具有相同的背景圖像。頂部的按鈕顯然有一個較厚的邊框,但它不應該。

http://www.vimtips.org/media/button_ss.png

這裏是屏幕截圖按鈕的特寫鏡頭(在左側)和實際圖像9patch(在右側)。

http://vimtips.org/media/images/buttoncmp.png

按鈕是不是我已經看到了這個唯一的地方。如果我使用1像素邊框創建背景圖像並將其用作ListView行的背景,則有時邊框會顯示爲2像素而不是1。

很難讓UI看起來完全符合您的要求帶着這些問題。有一種方法可以讓它看起來應該如何。

+1

這將極大的幫助,如果您可以提供顯示出您所描述的行爲的樣本圖像。 – CommonsWare 2010-03-21 11:39:38

+0

http://vimtips.org/media/images/buttoncmp.png - 左邊是在Android上運行的按鈕的屏幕截圖,每個地方都有2個像素邊框。右圖是9patch本身的截圖。 – synic 2010-03-21 15:20:24

回答

3

用你的9-patch中的不同標記試試。防爆。就像他們在這個例子中使用的那樣:http://developer.android.com/intl/de/guide/developing/tools/draw9patch.html

我已經親身體驗過這個問題,這個問題與清單文件中的largeScreen支持有關。而且我還沒有在drawable-hdpi文件夾中提供正確的圖像。導致設備縮放drawable-mdpi drawables。

你有多少個可繪製的文件夾?

你有沒有在你的清單? :

<supports-screens 
     android:largeScreens="true" 
     android:normalScreens="true" 
     android:smallScreens="true" 
     android:resizable="true" 
     android:anyDensity="true" /> 

請確保您有正確的圖形內容正確密度

+0

我正在使用Android 1.5,因此我沒有這些文件夾。也許我應該瞄準2.0,但minSdk設置爲1.5? 即便如此,九張圖片應該可以縮放到任意大小,對吧?不管它在哪個目錄中,但可能我正在以錯誤的方式考慮它。 – synic 2010-03-27 20:06:55

+1

那麼,切換到而不是似乎解決了我的問題。我甚至沒有創建任何額外的目錄,比如drawable-mdpi或其他東西。我會把它交給你,因爲你讓我找到了解決方案,而且你是唯一一個能夠添加答案的人。 – synic 2010-03-28 05:46:08

+0

大聲笑............................................. – afadfadf 2016-03-21 10:30:38