2011-06-16 43 views
0

Sample buttonAndroid:可以使用9個補丁來繪製按鈕? (見圖)

如果我想用圖片作爲按鈕背景,我該怎麼做呢? 9補丁?或修正圖像(ldip/mdip/hdip)?

謝謝!

編輯:

感謝兩次答覆,我知道該工具draw9patch,但我不知道如何定義的垂直區域,所以它不會破壞梯度? 謝謝!

+0

我會使用http://draw9patch.com而不是SDK附帶的工具。該工具非常糟糕,網絡版本更容易。 – Ted 2013-01-11 00:21:56

回答

3

我相信9補丁將是更優雅的解決方案。您可以使用Android SDK中「tools」文件夾中的「draw9patch」工具來執行此操作。官方的Android文檔給出瞭如何使用它的很好的概述:http://developer.android.com/guide/developing/tools/draw9patch.html

+2

由於您的按鈕具有2種顏色,因此y軸上僅標記少許(2-3)個像素。 – 2011-06-16 05:41:25

0

它肯定應該是9-patch。你將不得不小心地選擇可拉伸的區域,以不破壞漸變。使用the tool預覽按鈕上的外觀。

3

要創建你需要一個自定義按鈕:

  • 一個<selector>(狀態列表)繪製的引用可繪製不同的默認/壓/聚焦/殘疾/等。狀態。

  • 每個狀態應該在每個密度(ldpi/mdpi/hdpi/xhdpi)中繪製一個9補丁(.9.png)。請注意,該框架可以向上或向下縮放,因此您不需要需要爲每個密度提供九個補丁,但爲了獲得最佳效果,您應該這樣做。

所以,您的自定義按鈕,可繪製使用下列文件夾結構:

res/ 
    drawable/ 
    mybtn.xml    # <selector> (state list) 
    drawable-hdpi/ 
    mybtn_default.9.png 
    mybtn_pressed.9.png 
    mybtn_focused.9.png 
    mybtn_disabled.9.png 
    drawable-mdpi/ 
    mybtn_default.9.png 
    mybtn_pressed.9.png 
    mybtn_focused.9.png 
    mybtn_disabled.9.png 
    drawable-xhdpi/ 
    ... 
0

我不知道這是否會好看,但作爲9補丁實際上允許您設置多個伸展區域,您可以嘗試設置多個1像素高的垂直區域,並將所有這些區域拉伸(基本上,每2像素都有一條可伸縮的線條)。這看起來不像梯度效果好,但如果不太舒服,可能會足夠好。