package com.androsz.electricsleepbeta.widget; import android.content.Context; import android.util.AttributeSet; import android.widget.SeekBar; public class DecimalSeekBar extends SeekBar { private static java.text.NumberFormat nf = java.text.NumberFormat.getInstance(); public final static float PRECISION = 100f; static { nf.setGroupingUsed(false); nf.setMinimumFractionDigits(0); nf.setMaximumFractionDigits(("" + (int) Math.pow(PRECISION, 0.5)).length()); nf.setMinimumFractionDigits(("" + (int) Math.pow(PRECISION, 0.5)).length()); } public DecimalSeekBar(final Context context) { this(context, null); } public DecimalSeekBar(final Context context, final AttributeSet as) { this(context, as, 0); } public DecimalSeekBar(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setMax(Math.round((10 * PRECISION))); } public float getFloatProgress() { return super.getProgress() / PRECISION; } public void setMax(final float max) { super.setMax(Math.round((max * PRECISION))); } @Override public void setMax(final int max) { super.setMax(Math.round((max * PRECISION))); } public float getFloatMax() { return getMax() / PRECISION; } public void setProgress(final float progress) { super.setProgress(Math.round(progress * PRECISION)); } @Override public void setProgress(final int progress) { super.setProgress(Math.round((float) progress / PRECISION)); } }