Android更改Seekbar拇指与Java导致拇指位置重置

Android更改Seekbar拇指与Java导致拇指位置重置

问题描述:

我想创建一个用拇指改变颜色,当用户按下时改变seekbar,当用户放开时改回。我设法改变拇指绘制拇指。不过,我还必须在java中设置可绘制的边界,以便在更改后显示它。现在,当用户放开滑块并恢复到其原始可绘制状态时,它将可绘图重置为零位置,并将进度保留在应该出现的位置。我已经尝试使用全局变量来重置drawbar更改后的seekbar进度,但似乎不起作用。如果我使用静态整数来重置进度,它将以我希望的方式工作。Android更改Seekbar拇指与Java导致拇指位置重置

有点新的android和我不知道我在做什么错。

这是触摸时改变drawable的代码。

private void Seek_Height_Click() { 
    Drawable myThumb = getResources().getDrawable(R.drawable.slider_button_click); 
    myThumb.setBounds(new Rect(0, 0, myThumb.getIntrinsicWidth(),myThumb.getIntrinsicHeight())); 
    Height_of_Target_skbr.setThumb(myThumb); 
    Height_of_Target_skbr.setThumbOffset(-1); 
} 

这是将拇指设置回原始绘图的代码。

private void Seek_Height_UnClick() { 
    Drawable myThumb = getResources().getDrawable(R.drawable.slider_button); 
    myThumb.setBounds(new Rect(0, 0, myThumb.getIntrinsicWidth(),myThumb.getIntrinsicHeight())); 
    Height_of_Target_skbr.setThumb(myThumb); 
    Height_of_Target_skbr.setThumbOffset(-1); 
    Height_of_Target_skbr.setProgress(Height_Prog_int); 
} 

这是调用上述方法的代码。

this.Height_of_Target_skbr.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
      returnHeight_skbr(); 
      Seek_Height_UnClick(); 
     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 
      returnHeight_skbr(); 
      Seek_Height_Click(); 
     } 

     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
      returnHeight_skbr(); 
     } 
    }); 

我是能够使创建的文件夹中绘制一个样式,然后设置拇指提拉到风格在使用这项工作。

我推荐本教程来完成这项工作。 http://www.youtube.com/watch?v=zXXCFmfJMNw

的拇指形状代号

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android" > 
<item 
    android:state_pressed="true" 
    android:drawable="@drawable/slider_button_click"> 
</item> 
<item 
    android:drawable="@drawable/slider_button"> 
</item> 
</selector>