Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以编程方式将thumb设置为seekbar的特定位置(而不是偏移)?_Android_Position_Seekbar - Fatal编程技术网

Android 以编程方式将thumb设置为seekbar的特定位置(而不是偏移)?

Android 以编程方式将thumb设置为seekbar的特定位置(而不是偏移)?,android,position,seekbar,Android,Position,Seekbar,我有一个定制的seekbar,我在其中更新的进展和最大振幅的声音。因此,seekbar根据声音检测而变化,拇指显示声音的最大潜伏期。我想将拇指的位置设置为一个特定的位置(Max Amblitude),就像我们在seekbar中设置进度一样。我浏览了大量的问题和答案,还浏览了开发人员文档。在开发人员文档中,它提到只有偏移量可以被给出,从而保持拇指偏离进度轨道 来自开发者文档 setThumbOffset(int-thumbOffset)-- 设置允许拇指伸出轨迹范围的拇指偏移量 是否有任何可能的方

我有一个定制的seekbar,我在其中更新的进展和最大振幅的声音。因此,seekbar根据声音检测而变化,拇指显示声音的最大潜伏期。我想将拇指的位置设置为一个特定的位置(Max Amblitude),就像我们在seekbar中设置进度一样。我浏览了大量的问题和答案,还浏览了开发人员文档。在开发人员文档中,它提到只有偏移量可以被给出,从而保持拇指偏离进度轨道

来自开发者文档 setThumbOffset(int-thumbOffset)-- 设置允许拇指伸出轨迹范围的拇指偏移量

是否有任何可能的方法将拇指设置到特定位置。示例如下所示。在本例中,我设置了thumbs偏移量,以便仅显示样本,而不是将thumb设置为准确的位置


我认为可以使用setProgress(int progress)设置拇指的位置,因为在SeekBar中,拇指将显示在进度表的末尾。
如果您想独立于进度设置拇指的位置,那么您可以实现自己的SeekBar扩展AbsSeekBar,您可以参考SeekBar的位置。

使用透明进度颜色制作一个

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

    <item
        android:id="@android:id/background"
        android:drawable="@drawable/my_background"/>
    <item android:id="@android:id/progress">
        <clip android:drawable="@android:color/transparent" />
    </item>
    <item android:id="@android:id/secondaryProgress">
        <clip android:drawable="@drawable/my_visual_progress" />
    </item>

</layer-list> 

配合使用 设置进度条的可视“进度”


然后用
setProgress(int)
相应地移动拇指。

我不明白你的真正意思,但从你说的话我能理解,做我做的事 尝试使用不同的
绘图工具
让我给你举个例子:

您的
代码
.爪哇

您的问题:

您可以做的是
simple
只需重命名相同的可绘制文件,如下所示:

import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.widget.SeekBar;

public class MainActivity extends Activity {
    private SeekBar seekBar1;

    private SeekBar seekBar2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         seekBar1 = (SeekBar) findViewById(R.id.seekBar1);
         seekBar2 = (SeekBar) findViewById(R.id.seekBar2);
         seekBar1.setProgress(15);
         seekBar2.setProgress(55);
         Drawable ii = getResources().getDrawable(R.drawable.ii);
         Drawable iii = getResources().getDrawable(R.drawable.ii);
         seekBar1.setThumb(ii);
         seekBar2.setThumb(iii);

    }
}
这就是结果:


将LayerDrawable用作拇指drawable。而不是改变层内的可拉伸性,而不是拇指的可拉伸性

<?xml version="1.0" encoding="utf-8"?>

是的,我看到一些帖子显示了Abseekbar的可行性,但是你能告诉我使用Abseekbar实现的任何来源吗。@SREEDVR你可以在这里查看Abseekbar的src:了解拇指是如何画出来的以及位置是如何设置的。@Sreedev R的确切位置表示如图所示..与实际情况稍有出入过程
<?xml version="1.0" encoding="utf-8"?>
<item  android:id="@+id/thumbImage"     android:drawable="@drawable/normalDrawable"/>
(thumb as LayerDrawable).setDrawableByLayerId(R.id.thumbImage, otherDrawable)