package com.firstbuild.viewutil;
import android.content.Context;
import android.graphics.Typeface;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.NumberPicker;
public class StyledNumberPicker extends NumberPicker {
private String TAG = StyledNumberPicker.class.getSimpleName();
private int adjustValue = 0;
public StyledNumberPicker(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void addView(View child) {
super.addView(child);
updateView(child);
}
@Override
public void addView(View child, int width, int height) {
super.addView(child, width, height);
updateView(child);
}
@Override
public void addView(View child, ViewGroup.LayoutParams params) {
super.addView(child, params);
updateView(child);
setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
}
@Override
public void addView(View child, int index, ViewGroup.LayoutParams params) {
super.addView(child, index, params);
updateView(child);
setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
}
private void updateView(View view) {
if (view instanceof EditText) {
Typeface tf = null;
try {
tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/geInspiraMedium.ttf");
} catch (Exception e) {
Log.e(TAG, "Could not get typeface: " + e.getMessage());
}
((EditText) view).setTypeface(tf);
((EditText) view).setTextSize(24);
}
}
@Override
public int getValue() {
int value = super.getValue();
return value + adjustValue;
}
@Override
public void setValue(int value) {
value -= adjustValue;
super.setValue(value);
}
public void setRange(int minValue, int maxValue) {
Log.d(TAG, "setRange " + minValue + ", " + maxValue);
if (minValue < 0) {
adjustValue = minValue;
setMinValue(0);
setMaxValue(maxValue - adjustValue);
setWrapSelectorWheel(false);
// setFormatter(new Formatter() {
// @Override
// public String format(int value) {
// GeLog.print(GeLog.debug, "StyledNumberPicker.format, " + "value:"+value+", adjustValue :"+adjustValue+", "+Integer.toString(value + adjustValue));
//
// return Integer.toString(value + adjustValue);
// }
// });
} else {
setMinValue(minValue);
setMaxValue(maxValue);
}
}
}