2013-12-16 59 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