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>