private void init(AttributeSet attrs) { loaderController = new LoaderController(this); TypedArray typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.loader_view, 0, 0); loaderController.setWidthWeight(typedArray.getFloat(R.styleable.loader_view_width_weight, LoaderConstant.MAX_WEIGHT)); loaderController.setHeightWeight(typedArray.getFloat(R.styleable.loader_view_height_weight, LoaderConstant.MAX_WEIGHT)); loaderController.setUseGradient(typedArray.getBoolean(R.styleable.loader_view_use_gradient, LoaderConstant.USE_GRADIENT_DEFAULT)); loaderController.setCorners(typedArray.getInt(R.styleable.loader_view_corners, LoaderConstant.CORNER_DEFAULT)); defaultColorResource = typedArray.getColor(R.styleable.loader_view_custom_color, ContextCompat.getColor(getContext(), R.color.default_color)); darkerColorResource = typedArray.getColor(R.styleable.loader_view_custom_color, ContextCompat.getColor(getContext(), R.color.darker_color)); typedArray.recycle(); }
public LoaderController(LoaderView view) { loaderView = view; init(); }
public void onDraw(Canvas canvas) { onDraw(canvas, 0, 0, 0, 0); }
private void init(AttributeSet attrs) { loaderController = new LoaderController(this); TypedArray typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.loader_view, 0, 0); loaderController.setUseGradient(typedArray.getBoolean(R.styleable.loader_view_use_gradient, LoaderConstant.USE_GRADIENT_DEFAULT)); loaderController.setCorners(typedArray.getInt(R.styleable.loader_view_corners, LoaderConstant.CORNER_DEFAULT)); defaultColorResource = typedArray.getColor(R.styleable.loader_view_custom_color, ContextCompat.getColor(getContext(), R.color.default_color)); typedArray.recycle(); }
public void stopLoading() { if (valueAnimator != null) { valueAnimator.cancel(); setValueAnimator(progress, 0, 0); valueAnimator.start(); } }
@Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); loaderController.removeAnimatorUpdateListener(); } }
@Override protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight) { super.onSizeChanged(width, height, oldWidth, oldHeight); loaderController.onSizeChanged(); }
public void onDraw(Canvas canvas, float left_pad, float top_pad, float right_pad, float bottom_pad) { float margin_height = canvas.getHeight() * (1 - heightWeight) / 2; rectPaint.setAlpha((int) (progress * MAX_COLOR_CONSTANT_VALUE)); if (useGradient) { prepareGradient(canvas.getWidth() * widthWeight); } canvas.drawRoundRect(new RectF(0 + left_pad, margin_height + top_pad, canvas.getWidth() * widthWeight - right_pad, canvas.getHeight() - margin_height - bottom_pad), corners, corners, rectPaint); }
private void init() { rectPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); loaderView.setRectColor(rectPaint); setValueAnimator(0.5f, 1, ObjectAnimator.INFINITE); }
@Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); loaderController.removeAnimatorUpdateListener(); } }
@Override protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight) { super.onSizeChanged(width, height, oldWidth, oldHeight); loaderController.onSizeChanged(); }
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); loaderController.onDraw(canvas); }
public void startLoading() { if (valueAnimator != null && !loaderView.valueSet()) { valueAnimator.cancel(); init(); valueAnimator.start(); } }
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); loaderController.onDraw(canvas, getCompoundPaddingLeft(), getCompoundPaddingTop(), getCompoundPaddingRight(), getCompoundPaddingBottom()); }