diff --git a/README.md b/README.md
index e8d65bc..6122095 100644
--- a/README.md
+++ b/README.md
@@ -71,6 +71,9 @@ There exist further attributes which let you customize the general appearance of
app:snp_orientation="horizontal"
app:snp_valueMarginEnd="5dp"
app:snp_valueMarginStart="5dp"
+ app:snp_value_text_color="@color/colorPrimary"
+ app:snp_value_text_size="16sp"
+ app:snp_value_text_appearance="?android:attr/textAppearanceMedium"
app:snp_buttonPaddingBottom="8dp"
app:snp_buttonPaddingLeft="8dp"
app:snp_buttonPaddingRight="8dp"
diff --git a/library/src/main/java/com/michaelmuenzer/android/scrollablennumberpicker/ScrollableNumberPicker.java b/library/src/main/java/com/michaelmuenzer/android/scrollablennumberpicker/ScrollableNumberPicker.java
index ef9eb73..5e189a2 100755
--- a/library/src/main/java/com/michaelmuenzer/android/scrollablennumberpicker/ScrollableNumberPicker.java
+++ b/library/src/main/java/com/michaelmuenzer/android/scrollablennumberpicker/ScrollableNumberPicker.java
@@ -10,6 +10,7 @@
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.support.v4.graphics.drawable.DrawableCompat;
+import android.support.v4.widget.TextViewCompat;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.Gravity;
@@ -28,6 +29,7 @@
import static android.view.KeyEvent.KEYCODE_DPAD_UP;
public class ScrollableNumberPicker extends LinearLayout {
+ private final static int INVALID_RES = -1;
private final static float SLOWING_FACTOR = 1.25f;
private final static int MIN_UPDATE_INTERVAL_MS = 50;
@@ -47,6 +49,9 @@ public class ScrollableNumberPicker extends LinearLayout {
private int mMaxValue;
private int mMinValue;
private int mStepSize;
+ private float mValueTextSize;
+ private int mValueTextColor;
+ private int mValueTextAppearanceResId;
private boolean mScrollEnabled;
private int mUpdateIntervalMillis;
@@ -158,12 +163,38 @@ public void setValue(int value) {
private void setValue() {
mValueTextView.setText(String.valueOf(mValue));
-
if (mListener != null) {
mListener.onNumberPicked(mValue);
}
}
+ private void initValueView() {
+ mValueTextView = (TextView) findViewById(R.id.text_value);
+
+ if (mValueTextAppearanceResId != INVALID_RES) {
+ TextViewCompat.setTextAppearance(mValueTextView, mValueTextAppearanceResId);
+ }
+
+ if (mValueTextColor != INVALID_RES) {
+ mValueTextView.setTextColor(mValueTextColor);
+ }
+
+ if (mValueTextSize != INVALID_RES) {
+ mValueTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, mValueTextSize);
+ }
+
+ LinearLayout.LayoutParams layoutParams = (LayoutParams) mValueTextView.getLayoutParams();
+ if (mOrientation == HORIZONTAL) {
+ layoutParams.setMargins(mValueMarginStart, 0, mValueMarginEnd, 0);
+ } else {
+ layoutParams.setMargins(0, mValueMarginStart, 0, mValueMarginEnd);
+ }
+
+ mValueTextView.setLayoutParams(layoutParams);
+
+ setValue();
+ }
+
@SuppressWarnings("unused")
public int getMaxValue() {
return mMaxValue;
@@ -311,6 +342,12 @@ private void init(Context context, AttributeSet attrs) {
mValue = typedArray.getInt(R.styleable.ScrollableNumberPicker_snp_value,
res.getInteger(R.integer.default_value));
+ mValueTextSize = typedArray.getDimension(R.styleable.ScrollableNumberPicker_snp_value_text_size,
+ INVALID_RES);
+ mValueTextColor = typedArray.getColor(R.styleable.ScrollableNumberPicker_snp_value_text_color,
+ INVALID_RES);
+ mValueTextAppearanceResId = typedArray.getResourceId(R.styleable.ScrollableNumberPicker_snp_value_text_appearance, INVALID_RES);
+
mScrollEnabled = typedArray.getBoolean(R.styleable.ScrollableNumberPicker_snp_scrollEnabled,
res.getBoolean(R.bool.default_scrollEnabled));
@@ -332,7 +369,6 @@ private void init(Context context, AttributeSet attrs) {
typedArray.recycle();
initViews();
- setValue();
mAutoIncrement = false;
mAutoDecrement = false;
@@ -341,20 +377,12 @@ private void init(Context context, AttributeSet attrs) {
}
private void initViews() {
- mValueTextView = (TextView) findViewById(R.id.text_value);
- LinearLayout.LayoutParams layoutParams = (LayoutParams) mValueTextView.getLayoutParams();
- if (mOrientation == HORIZONTAL) {
- layoutParams.setMargins(mValueMarginStart, 0, mValueMarginEnd, 0);
- } else {
- layoutParams.setMargins(0, mValueMarginStart, 0, mValueMarginEnd);
- }
- mValueTextView.setLayoutParams(layoutParams);
-
setOrientation(mOrientation);
setGravity(Gravity.CENTER);
- initButtonPlus();
- initButtonMinus();
+ initValueView();
+ initButtonPlusView();
+ initButtonMinusView();
if (mScrollEnabled) {
setOnTouchListener(new OnTouchListener() {
@@ -431,7 +459,7 @@ public boolean onTouch(View view, MotionEvent motionEvent) {
}
}
- private void initButtonPlus() {
+ private void initButtonPlusView() {
setButtonPlusImage();
mPlusButton.setOnClickListener(new OnClickListener() {
@@ -465,7 +493,7 @@ public boolean onTouch(View v, MotionEvent event) {
});
}
- private void initButtonMinus() {
+ private void initButtonMinusView() {
setButtonMinusImage();
mMinusButton.setOnClickListener(new View.OnClickListener() {
diff --git a/library/src/main/res/values/attrs.xml b/library/src/main/res/values/attrs.xml
index e6644b8..715a7f5 100644
--- a/library/src/main/res/values/attrs.xml
+++ b/library/src/main/res/values/attrs.xml
@@ -17,6 +17,10 @@
+
+
+
+
diff --git a/library/src/main/res/values/dimen.xml b/library/src/main/res/values/dimens.xml
similarity index 100%
rename from library/src/main/res/values/dimen.xml
rename to library/src/main/res/values/dimens.xml
diff --git a/sample-mobile/src/main/res/layout/activity_main.xml b/sample-mobile/src/main/res/layout/activity_main.xml
index df90653..be3c0c6 100644
--- a/sample-mobile/src/main/res/layout/activity_main.xml
+++ b/sample-mobile/src/main/res/layout/activity_main.xml
@@ -50,7 +50,7 @@
+ app:snp_valueMarginStart="8dp"
+ app:snp_value_text_appearance="?android:attr/textAppearanceMedium"/>
+ app:snp_valueMarginStart="5dp"
+ app:snp_value_text_color="@color/colorPrimary"
+ app:snp_value_text_size="16sp"/>