summaryrefslogtreecommitdiffstats
path: root/fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java
diff options
context:
space:
mode:
Diffstat (limited to 'fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java')
-rw-r--r--fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java67
1 files changed, 41 insertions, 26 deletions
diff --git a/fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java b/fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java
index 505097f..53ff9ce 100644
--- a/fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java
+++ b/fmapp2/src/com/caf/fmradio/HorizontalNumberPicker.java
@@ -30,6 +30,7 @@ import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
+import android.graphics.Typeface;
import android.graphics.Paint.Align;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
@@ -92,7 +93,7 @@ public class HorizontalNumberPicker extends LinearLayout {
/**
* The coefficient by which to adjust (divide) the max fling velocity.
*/
- private static final int SELECTOR_MAX_FLING_VELOCITY_ADJUSTMENT = 8;
+ private static final int SELECTOR_MAX_FLING_VELOCITY_ADJUSTMENT = 4;
/**
* The the duration for adjusting the selector wheel.
@@ -247,7 +248,7 @@ public class HorizontalNumberPicker extends LinearLayout {
/**
* The height of the text.
*/
- private int mTextSize = 20;
+ private int mTextSize = 60;
/**
* The height of the gap between text elements if the selector wheel.
*/
@@ -346,7 +347,7 @@ public class HorizontalNumberPicker extends LinearLayout {
/**
* The colors alpha of selector text.
*/
- private static final int SELECTOR_TEXT_ALPHA_TRANSPARENT_NONE = 255;
+ private static final int SELECTOR_TEXT_ALPHA_TRANSPARENT_NONE = 76;
private static float mDensity = 1.0f;
private static final float LDPI = 0.75f;
@@ -354,9 +355,9 @@ public class HorizontalNumberPicker extends LinearLayout {
private static final float HDPI = 1.5f;
private static final float XHDPI = 2.0f;
- private float mScaleWidth = 2;
+ private float mScaleWidth = 5;
private float mScaleLengthShort = 10;
- private float mScaleLengthLong = 20;
+ private float mScaleLengthLong = 40;
private float mGapBetweenNumAndScale = 18;
private float mHdpiPositionAdjust = 18;
@@ -899,19 +900,19 @@ public class HorizontalNumberPicker extends LinearLayout {
setSelectorWheelState(SELECTOR_WHEEL_STATE_SMALL);
return true;
}
-// VelocityTracker velocityTracker = mVelocityTracker;
-// velocityTracker.computeCurrentVelocity(1000, mMaximumFlingVelocity);
-// int initialVelocity=0;
-// if(!mHorizontal){
-// initialVelocity = (int) velocityTracker.getYVelocity();
-// }else{
-// initialVelocity = (int)velocityTracker.getXVelocity();
-// }
-// if (Math.abs(initialVelocity) > mMinimumFlingVelocity) {
-// // fling after up
-// fling(initialVelocity);
-// onScrollStateChange(OnScrollListener.SCROLL_STATE_FLING);
-// } else {
+ VelocityTracker velocityTracker = mVelocityTracker;
+ velocityTracker.computeCurrentVelocity(1000, mMaximumFlingVelocity);
+ int initialVelocity=0;
+ if(!mHorizontal){
+ initialVelocity = (int) velocityTracker.getYVelocity();
+ }else{
+ initialVelocity = (int)velocityTracker.getXVelocity();
+ }
+ if (Math.abs(initialVelocity) > mMinimumFlingVelocity) {
+ // fling after up
+ fling(initialVelocity);
+ onScrollStateChange(OnScrollListener.SCROLL_STATE_FLING);
+ } else {
if (mAdjustScrollerOnUpEvent) {
if (mFlingScroller.isFinished()
&& mAdjustScroller.isFinished()) {
@@ -920,7 +921,7 @@ public class HorizontalNumberPicker extends LinearLayout {
} else {
postAdjustScrollerCommand(SHOW_INPUT_CONTROLS_DELAY_MILLIS);
}
-// }
+ }
mVelocityTracker.recycle();
mVelocityTracker = null;
break;
@@ -1492,13 +1493,13 @@ public class HorizontalNumberPicker extends LinearLayout {
.get(selectorIndex);
if(i - mSelectorMiddleItemIndex > 0 ){
mSelectorWheelPaint.setColor(Color.WHITE);
- mSelectorWheelPaint.setAlpha((2*mSelectorMiddleItemIndex - i) * SELECTOR_TEXT_ALPHA_TRANSPARENT_NONE / mSelectorMiddleItemIndex);
+ mSelectorWheelPaint.setAlpha(SELECTOR_TEXT_ALPHA_TRANSPARENT_NONE);
}else if(i - mSelectorMiddleItemIndex < 0 ){
mSelectorWheelPaint.setColor(Color.WHITE);
- mSelectorWheelPaint.setAlpha(i * SELECTOR_TEXT_ALPHA_TRANSPARENT_NONE / mSelectorMiddleItemIndex);
- }else{
- mSelectorWheelPaint.setColor(Color.RED);
mSelectorWheelPaint.setAlpha(SELECTOR_TEXT_ALPHA_TRANSPARENT_NONE);
+ }else{
+ mSelectorWheelPaint.setColor(Color.WHITE);
+ mSelectorWheelPaint.setAlpha(0);
}
try {
fNumber = Float.valueOf(scrollSelectorValue).floatValue();
@@ -1516,13 +1517,27 @@ public class HorizontalNumberPicker extends LinearLayout {
bShowNumber = true;
fScaleLength = mScaleLengthLong * mDensity;
}
+ } else {
+ fWidthOfScale-=2;
}
if(bShowNumber){
- canvas.drawText(scrollSelectorValue, x, y, mSelectorWheelPaint);
+ float originalWidth = mSelectorWheelPaint.getStrokeWidth();
+ int originalAlpha = mSelectorWheelPaint.getAlpha();
+ mSelectorWheelPaint.setTypeface(Typeface.DEFAULT_BOLD);
+ mSelectorWheelPaint.setStrokeWidth(2);
+ mSelectorWheelPaint.setStyle(Paint.Style.FILL_AND_STROKE);
+ mSelectorWheelPaint.setAlpha(SELECTOR_TEXT_ALPHA_TRANSPARENT_NONE);
+ canvas.drawText(scrollSelectorValue, x, mTextSize * 2, mSelectorWheelPaint);
+ mSelectorWheelPaint.setStyle(Paint.Style.FILL);
+ mSelectorWheelPaint.setStrokeWidth(originalWidth);
+ mSelectorWheelPaint.setAlpha(originalAlpha);
}
- canvas.drawRect(x, y+fGapBetweenNumAndScale, x+fWidthOfScale, y + fGapBetweenNumAndScale + fScaleLength , mSelectorWheelPaint);
-// }
+ float left = x;
+ float top = (mBottom - mTop) - fGapBetweenNumAndScale - fScaleLength;
+ float right = x+fWidthOfScale;
+ float bottom = (mBottom - mTop);
+ canvas.drawRect(left, top, right, bottom, mSelectorWheelPaint);
if (mHorizontal) {
x += mSelectorElementWidth;
} else {