package yanzhikai.ruler; import android.content.Context; import android.content.res.TypedArray; import android.support.annotation.ColorInt; import android.util.AttributeSet; import android.util.TypedValue; import android.view.LayoutInflater; import android.widget.RelativeLayout; import android.widget.TextView; import yanzhikai.ruler.Utils.RulerStringUtil; /** * Created by yany on 2017/10/17. * 用于包着显示具体数字刻度Layout */ public class KgNumberLayout extends RelativeLayout implements RulerCallback { private TextView tv_scale,tv_kg; //字体大小 private float mScaleTextSize = 80, mKgTextSize = 40; //字体颜色 private @ColorInt int mScaleTextColor = getResources().getColor(R.color.colorForgiven); private @ColorInt int mKgTextColor = getResources().getColor(R.color.colorForgiven); //kg单位文字 private String mUnitText = "kg"; private BooheeRuler mRuler; public KgNumberLayout(Context context) { super(context); init(context); } public KgNumberLayout(Context context, AttributeSet attrs) { super(context, attrs); initAttrs(context, attrs); init(context); } public KgNumberLayout(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(context); } private void initAttrs(Context context, AttributeSet attrs){ TypedArray typedArray = context.getTheme().obtainStyledAttributes(attrs,R.styleable.KgNumberLayout,0,0); mScaleTextSize = typedArray.getDimension(R.styleable.KgNumberLayout_scaleTextSize,mScaleTextSize); mKgTextSize = typedArray.getDimension(R.styleable.KgNumberLayout_kgTextSize,mKgTextSize); mScaleTextColor = typedArray.getColor(R.styleable.KgNumberLayout_scaleTextColor,mScaleTextColor); mKgTextColor = typedArray.getColor(R.styleable.KgNumberLayout_kgTextColor,mKgTextColor); String text = typedArray.getString(R.styleable.KgNumberLayout_kgUnitText); if (text != null){ mUnitText = text; } typedArray.recycle(); } private void init(Context context){ LayoutInflater.from(context).inflate(R.layout.layout_kg_number,this); tv_scale = (TextView) findViewById(R.id.tv_scale); tv_kg = (TextView) findViewById(R.id.tv_kg); tv_scale.setTextSize(TypedValue.COMPLEX_UNIT_PX,mScaleTextSize); tv_scale.setTextColor(mScaleTextColor); tv_kg.setTextSize(TypedValue.COMPLEX_UNIT_PX,mKgTextSize); tv_kg.setTextColor(mKgTextColor); tv_kg.setText(mUnitText); } public void bindRuler(BooheeRuler booheeRuler){ mRuler = booheeRuler; booheeRuler.setCallback(this); // tv_scale.setText(String.valueOf(booheeRuler.getCurrentScale())); } @Override public void onScaleChanging(float scale) { if (mRuler != null) { tv_scale.setText(RulerStringUtil.resultValueOf(scale, mRuler.getFactor())); } } }