2013-12-16 108 views
1

我想改變一個android seekbar的行爲,以便輔助android seekbar實際上是在主要的android seekbar上繪製的。從這裏列出的進度文檔: http://developer.android.com/reference/android/widget/ProgressBar.html#attr_android:secondaryProgress更改Android SeekBar在主進度之上繪製二級進度?

這一進展的主要進展和 背景之間繪製。

目前二級進度條的樣子:

Default secondary progress bar

希望的二級進度條的樣子:

Desired secondary progress bar

理想我想覆蓋進度的方法。 Android中的java更改繪圖的順序,以便次要進度欄繪製在主要進度欄的頂部,但我已將d如果很難在源代碼中找到合適的區域來覆蓋。任何想法在哪裏看?

我已經嘗試使用相對佈局繪製兩個進度條,但這種方法需要創建兩個控件。

回答

6

這是一個遲到的答案,但我發現如何做到這一點。並不難:)

首先看一下繪製進度如何在Android項目[這裏]定義。(https://github.com/android/platform_frameworks_base/blob/master/core/res/res/drawable/progress_horizontal_holo_dark.xml

所有你需要做的就是切換secondaryProgress的順序和進度,使進度到來之前(以下謊言)secondaryProgress這樣的:

<item android:id="@android:id/background" 
     android:drawable="@android:drawable/progress_bg_holo_dark" /> 

<item android:id="@android:id/progress"> 
    <scale android:scaleWidth="100%" 
      android:drawable="@android:drawable/progress_primary_holo_dark" /> 
</item> 

<item android:id="@android:id/secondaryProgress"> 
    <scale android:scaleWidth="100%" 
      android:drawable="@android:drawable/progress_secondary_holo_dark" /> 
</item> 

現在全只是這些資源不公開。因此,您必須將progress_bg_holo_dark.9.png,progress_primary_holo_dark.9.pngprogress_secondary_holo_dark.9.png複製到您的項目drawable-xhdpi文件夾(也可能與其他dpi圖像一樣)。

然後調整xml文件像下面的(只是刪除 「安卓」):

<item android:id="@android:id/background" 
     android:drawable="@drawable/progress_bg_holo_dark" /> 

<item android:id="@android:id/progress"> 
    <scale android:scaleWidth="100%" 
      android:drawable="@drawable/progress_primary_holo_dark" /> 
</item> 

<item android:id="@android:id/secondaryProgress"> 
    <scale android:scaleWidth="100%" 
      android:drawable="@drawable/progress_secondary_holo_dark" /> 
</item> 

+0

完美answer..Good – lynndragon