2013-05-22 41 views
1

我已經爲我的搜索欄下面的代碼搜索欄拇指(9補丁)不承認

<SeekBar 
    android:id="@+id/sbCardSpeed" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:layout_marginRight="5dp" 
    android:max="100" 
    android:progress="50" 
    android:secondaryProgress="0" 
    android:progressDrawable="@drawable/seekbar_progress" 
    android:thumb="@drawable/seek_thumb" /> 

seek_thumb是叫seek_thumb.9.png 9補丁圖像文件。無法識別該drawable的問題以及拇指未顯示的問題。但是,當我刪除.9。從文件名然後我的拇指顯示與黑色指導線

任何想法爲什麼或如何解決這個問題?

+0

當你在那裏有9個補丁時,LogCat中是否有任何註釋信息?如果您嘗試在該工具中加載圖像,「draw9patch」是否會抱怨圖像?你有沒有試過從你的SDK複製標準的拇指圖像,並使用它,看看它是否工作? – CommonsWare

+0

不是所有的問題。來自sdk的標準拇指圖像不是9補丁,是嗎? – Snake

+0

「來自sdk的標準拇指圖像不是9補丁,是嗎?」 - 我沒有看過。我認爲它是,否則你不會在你的定製版本中使用九個補丁。我會堅持使用SDK的結構。如果他們使用常規(非九貼片)PNG,請使用它。 – CommonsWare

回答

2

九貼片PNG文件幾乎專門用於小部件的背景,例如Button的背景。 SeekBar拇指可能不會被繪製爲背景。我本來會期望你的九段式PNG仍然可以工作,但顯然它不會。

標準SeekBar拇指圖像不是九個補丁,因爲它不需要像背景那樣調整大小。因此,我會堅持使用不同狀態的標準PNG文件,並從指向您PNG文件的相應StateListDrawable中引用它們。

您可以在$SDK/platforms/$VERSION/data/res/股票繪項目,其中$SDK是無論是安裝在開發機器上你的Android SDK和$VERSION一些API級別。實際的SeekBar拇指的標準StateListDrawable應該在drawable/中,而StateListDrawable所使用的PNG在seek_thumb_normal.png,seek_thumb_pressed.pngseek_thumb_selected.png的各個密度依賴目錄中(例如,drawable-hdpi/)。