Files
hsh-prevent/app/src/main/java/net/heartshield/ui/CircleView.java

77 lines
2.3 KiB
Java
Raw Normal View History

2026-03-02 06:19:34 +01:00
package net.heartshield.ui;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.util.AttributeSet;
import android.view.View;
import net.heartshield.prevent.R;
/**
* @author David Madl (git@abanbytes.eu)
* @date 2017-10-29
*/
public class CircleView extends View {
private double mViewDiameter = 1.0;
private double mMeasureSize;
private int mWidth;
private int mHeight;
private Paint mPaint;
public CircleView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
init(context);
}
private void init(Context context) {
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mPaint.setColor(ContextCompat.getColor(context, R.color.square_image_background_highlight));
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//canvas.drawCircle(x, y, radius, paint);
canvas.drawCircle(mWidth / 2, mHeight / 2, (float) (mMeasureSize / 2.0 * (0.2 + mViewDiameter * 0.60)), mPaint);
}
public void setDiameter(double diameter) {
mViewDiameter = diameter;
mViewDiameter = Math.min(Math.max(mViewDiameter, 0.0), 1.0);
invalidate();
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
/*
if(false) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
return;
}
*/
//final int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec);
final int widthSpecSize = MeasureSpec.getSize(widthMeasureSpec);
//final int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec);
final int heightSpecSize = MeasureSpec.getSize(heightMeasureSpec);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mMeasureSize = Math.min(widthSpecSize, heightSpecSize);
mWidth = widthSpecSize;
mHeight = heightSpecSize;
/*
if(widthSpecSize < heightSpecSize) {
super.onMeasure(widthMeasureSpec, widthMeasureSpec);
mMeasureSize = widthSpecSize;
} else {
super.onMeasure(heightMeasureSpec, heightMeasureSpec);
mMeasureSize = heightSpecSize;
}
*/
}
}