0
我想創建一個用拇指改變顏色,當用戶按下時改變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();
}
});