Android 带遮罩效果的定制Seekbar,带两个抽绳?

Android 带遮罩效果的定制Seekbar,带两个抽绳?,android,drawable,seekbar,custom-view,Android,Drawable,Seekbar,Custom View,我正在使用一个自定义seekbar来显示一个图形。我一直干到现在。我通过对seekbar应用可绘制的背景来显示此图。现在我的问题是,我需要将蓝色的设置为可绘制进度,并将seekbar的背景设置为红色图形。因此,当进展发生时,拇指移动到红色区域,拇指经过的区域应该变成蓝色,就像掩蔽效果一样。有谁能告诉我最好的方法吗。我的图片如下所示您应该为您的SeekBar使用自定义的progressDrawable。请参阅,以获取一个很棒的教程。您可以创建自定义视图。重写它的onTouch()方法以更改拇指的位

我正在使用一个自定义seekbar来显示一个图形。我一直干到现在。我通过对seekbar应用可绘制的背景来显示此图。现在我的问题是,我需要将蓝色的设置为可绘制进度,并将seekbar的背景设置为红色图形。因此,当进展发生时,拇指移动到红色区域,拇指经过的区域应该变成蓝色,就像掩蔽效果一样。有谁能告诉我最好的方法吗。我的图片如下所示

您应该为您的SeekBar使用自定义的
progressDrawable
。请参阅,以获取一个很棒的教程。

您可以创建自定义视图。重写它的
onTouch()
方法以更改拇指的位置。同时重写它的
onDraw()
方法,首先绘制红色图形作为视图背景,然后从与拇指位置对应的位置绘制蓝色图形。

这不是您想要的吗?

my_seek_bar_progress.xml:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@android:id/background"
        android:drawable="@drawable/red_graph"/>
    <item android:id="@android:id/progress">
        <clip android:drawable="@drawable/blue_graph" />
    </item>

</layer-list>  

在阅读了所有的问题和答案后,我希望这应该是你完成任务的场景

1.创建两个图形 按照你的逻辑

2.从特定位图生成两个DRW文件

Drawable G_bg = new BitmapDrawable(Red graph bitmap);
Drawable G_pg = new BitmapDrawable(Blue graph bitmap);
3.然后使用通过java代码创建的图层列表自定义搜索栏

ClipDrawable c=new ClipDrawable(G_pg, Gravity.LEFT,ClipDrawable.HORIZONTAL);
LayerDrawable ld =new LayerDrawable (new Drawable[]{G_bg,c}); 
4.将此图层列表应用于seekbar

Graphbar.setProgressDrawable(ld);

这应该是你想要的……谢谢你,我已经看过了。在这篇文章中,它是关于剪辑一小部分图像并显示进度的。我需要的是使用这个完整的图像,并显示像掩蔽的进展。由于它的图形,我不能剪辑一张图片并使用它。这段代码正在工作。但我的问题是,我正在通过代码动态生成这个2图,所以我将得到2个位图,稍后可以转换为drawble。有什么办法可以让我们通过java代码制作图层列表并将其添加到seekbar中吗?我明白。是的,有一种以编程方式创建图层列表的方法,它显示在接受的答案中。
ClipDrawable c=new ClipDrawable(G_pg, Gravity.LEFT,ClipDrawable.HORIZONTAL);
LayerDrawable ld =new LayerDrawable (new Drawable[]{G_bg,c}); 
Graphbar.setProgressDrawable(ld);