package org.petabytes.awesomeblogs.widget; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Paint; import android.support.annotation.ColorRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.View; import org.petabytes.awesomeblogs.R; public class CircleView extends View { private Paint paint; public CircleView(@NonNull Context context) { this(context, null); } public CircleView(@NonNull Context context, @Nullable AttributeSet attrs) { this(context, attrs, 0); } public CircleView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(attrs, defStyleAttr); } private void init(@Nullable AttributeSet attrs, int defStyleAttr) { TypedArray a = getContext().obtainStyledAttributes(attrs, R.styleable.CircleView, defStyleAttr, 0); paint = new Paint(); paint.setFlags(Paint.ANTI_ALIAS_FLAG); paint.setStyle(Paint.Style.FILL); paint.setColor(a.getColor(R.styleable.CircleView_fillColor, getContext().getResources().getColor(R.color.colorAccent))); a.recycle(); } public void setFillColor(@ColorRes int color) { paint.setColor(getContext().getResources().getColor(color)); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, widthMeasureSpec); } @Override protected void onDraw(Canvas canvas) { canvas.drawCircle(getWidth() / 2, getHeight() / 2, getWidth() / 2, paint); } }