@@ -0,0 +1,1387 @@
+%0Aimport android.annotation.SuppressLint;%0Aimport android.content.Context;%0Aimport android.util.AttributeSet;%0Aimport android.view.MotionEvent;%0Aimport android.widget.SeekBar;%0A%0A@SuppressLint(%22ClickableViewAccessibility%22)%0Apublic class AccurateSeekBar extends SeekBar %7B%0A%0A%09private float lastXPosition;%0A%09%0A%09public AccurateSeekBar(Context context) %7B%0A%09%09super(context);%0A%09%7D%0A%0A%09public AccurateSeekBar(Context context, AttributeSet attrs) %7B%0A%09%09super(context, attrs);%0A%09%7D%0A%0A%09public AccurateSeekBar(Context context, AttributeSet attrs, int defStyle) %7B%0A%09%09super(context, attrs, defStyle);%0A%09%7D%0A%0A%09@Override%0A%09public boolean onTouchEvent(MotionEvent event) %7B%0A        switch (event.getAction()) %7B%0A%09        case MotionEvent.ACTION_MOVE:%0A%09    %09%09if (Math.abs(event.getY()) %3C (this.getHeight() * 2)) %7B%0A%09        %09%09this.setProgress((int)(this.getMax() * (float)(event.getX() / ((float)this.getWidth() - 1))));%0A%09    %09%09%7D else %7B%0A%09        %09%09float trackingHorizontalDistance = event.getX() - this.lastXPosition;%0A%09        %09%09float valuePerPixel = (float)this.getMax() / (float)this.getWidth();%0A%09        %09%09float valueDivisor = Math.abs(event.getY()) / (float)this.getHeight();%0A%09    %09%09%09float offset = (trackingHorizontalDistance * valuePerPixel) / valueDivisor;%0A%09    %09%09%09this.setProgress(this.getProgress() + (int)offset);%0A%09    %09%09%7D%0A%09            break;%0A        %7D%0A        this.lastXPosition = event.getX();%0A        return true;%0A%09%7D%0A%09%0A%7D%0A

Create AccurateSeekBar.java