2013-02-07 82 views
5

我正在使用九個補丁圖像作爲選擇器的item元素的drawable。 九個補丁圖像是在這裏:9補丁圖像縮放在錯誤的位置

9 patch image

終於被渲染的圖像是這樣的(仿真器&設備屏幕截圖,無論設備有決議> MDPI):

resulting rendered image

正如你可以看到,它已被縮放到可拉伸區域之外(如在9補丁文件中所定義的),較暗的綠色條棒應該更厚。 這是爲什麼,可以避免? draw9patch工具可正確縮放此圖像。它是否與Android試圖保留高分辨率設備的物理尺寸有關?

+0

讓我們看到您繪製圖像的代碼。 – Caerulius

回答

6

你只提供一個mdpi版本的圖像嗎?

Android會縮放所有無法提供正確像素密度的圖像。這發生在圖像通過9patch縮放之前。

這將意味着您的圖像將被放大以適應hdpi,然後縮放以適合內容。

要解決這個問題,您必須提供圖像的hdpi和xhdpi版本。 9patch不應該針對不同的像素密度,而是針對不同的內容/屏幕尺寸。

+0

只有一個版本(放在可繪製文件夾中)。所以看來你所概述的過程解釋了我所面臨的問題。太糟糕了,儘管我可以避免爲所有這些不同的物理分辨率創建圖像... – user462982

3

我檢查了您9補丁:

enter image description here

爲什麼你的顏色你不使用邊界的白色?它應該是透明的。 因爲這一點,不會被識別爲一個9Patch的:

enter image description here

+0

白色邊框是我個人的最佳實踐,因爲它避免了幾乎透明的像素存在於外部邊框上。到目前爲止,我從來沒有遇到過這個問題。我仔細檢查了這一點:紅色條紋(無論它們是什麼意思)也以完全透明的邊框出現。 – user462982