値をインクリメントおよびデクリメントするための 2 つのボタンを使用してコードでシーク バーを使用しています。シーク バーの最小範囲と最大範囲は -30 から 480 である必要があります。
シークバーの範囲を-30から480に設定する方法を提案してください。
これは私がこれに使用するクラスです:
import android.content.Context;
import android.support.v7.appcompat.R;
import android.util.AttributeSet;
import android.widget.SeekBar;
/**
* Created by HeWhoWas on 5/10/13.
*/
public class NegativeSeekBar extends SeekBar {
protected int minimumValue = 0;
protected int maximumValue = 0;
protected OnSeekBarChangeListener listener;
public NegativeSeekBar(Context context){
super(context);
setUpInternalListener();
}
public NegativeSeekBar(Context context, AttributeSet attrs){
super(context, attrs);
setUpInternalListener();
}
public NegativeSeekBar(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
setUpInternalListener();
}
public void setMin(int min){
this.minimumValue = min;
super.setMax(maximumValue - minimumValue);
}
public void setMax(int max){
this.maximumValue = max;
super.setMax(maximumValue - minimumValue);
}
@Override
public void setOnSeekBarChangeListener(OnSeekBarChangeListener listener){
this.listener = listener;
}
private void setUpInternalListener(){
super.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
if(listener != null){
listener.onProgressChanged(seekBar, minimumValue + i, b);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
if(listener != null)
listener.onStartTrackingTouch(seekBar);
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if(listener != null)
listener.onStopTrackingTouch(seekBar);
}
});
}
}