2013-04-17 112 views
1

我無法理解,爲什麼這9patch圖像沒有被設置爲我的android應用程序中的ninepatch。 出於某種原因,它將它顯示爲一個普通的png文件。這張九張圖片有什麼問題?

奇怪的是,無論是draw9patch工具和Eclipse構建在UI設計師,正確顯示圖像(它被正確地擴張),但不是在的Nexus 7

我附着圖像。

Google+ button 9patch

這不是文件名,作爲9patch是與draw9patch工具創建的文件名是 「google_button.9.png

這是XML代碼

<Button 
      android:id="@+id/btn_googleplus" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:background="@drawable/google_button" 
      android:minWidth="300dp" 
      android:text="@string/login_login_with_google" 
      android:textColor="#ffffffff" 
      android:textStyle="bold" 
      android:textSize="19sp" 
      android:layout_marginTop="15dp"/> 
+0

它的文件名是什麼? – Ahmad

回答

0

看來9補丁不好,我簡化到這一個。請試一試。當我使用9個補丁時,我只放置頂部和左側邊緣標記;我想在png周圍標記會在某個時刻造成混亂。

9-patch image updated

+0

在這裏添加了xml代碼 – Lefteris

+0

Mmh同樣的問題,讓我做一些測試。 – ssantos

+0

我附加了一個新的PNG到我的答案。 – ssantos

0

確保它是在繪製,華電國際,否則它就會重新調整,和一個像素的黑色有時不很好地擴展。對於這樣的圖像,最好讓它們適用於所有dpis

+0

它在drawable-xhdpi文件夾中 – Lefteris

0

9patch圖像的背景是完全透明還是白色?

API導遊說,

邊界是用來定義圖像的拉伸和靜態區域。您通過在邊框的左側和頂部繪製一個(或多個)1像素寬的黑色線條(其他邊框像素應完全透明或白色)來指示可拉伸部分。

+0

是的,圖像從photoshop保存爲24位png圖像(透明),然後保存爲9patch draw9patch工具 – Lefteris

0

Lefteris,我發現這個教程有助於理解爲什麼我在Photoshop中創建與NinePatch圖像(圖像和導遊)問題:

http://radleymarx.com/blog/simple-guide-to-9-patch/

具體而言,本款:

另外,您應該記住,單像素 輪廓的其餘區域必須完全透明。這包括圖像的四個角落 - 這些應該始終清晰。這可能會比你意識到的更大的問題 。例如,如果您在Photoshop中縮放圖像,它將添加抗鋸齒像素,其中可能包含幾乎不可見的像素,這也會導致其失敗*。如果您必須在Photoshop中使用 比例縮放,請使用「圖像大小」彈出式菜單底部的「取樣 」下拉菜單中的「最近鄰居」設置以 保留導杆上的銳利邊緣。

我發現,先準備圖像在Photoshop中,然後使用draw9patch工具畫出導遊是創造工作 NinePatch圖像的最佳方式。該工具的好處是它會指出有問題的地方。如前所述,右側和底部指南並不是必需的,因爲您可以通過將1px邊框置於不想伸展的頂部和左側區域,輕鬆指定內容區域 - 以下是我需要放置的示例條幅屏幕的底部。我需要確保這兩個內容區域不會延伸。此外,我還希望確保拉伸並沒有出現在左內容區域的左側和右側的內容區域的右側:

enter image description here

希望這有助於。