0
Я мог бы запрограммировать приложение, чтобы сделать, но у меня есть проблеманачать краску из круга андроида
Я хочу, чтобы начать рисовать из круга, моей точки всегда будет круг, как я мог это сделать?
Теперь я могу сделать из любой точки, я пытался найти середину экрана, но это не сработало
public CanvasView(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
path = new Path();
paint = new Paint();
paint.setColor(Color.RED);
paint.setAntiAlias(true);
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.ROUND);
paint.setStrokeWidth(20f);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
mbitmap = Bitmap.createBitmap(w,h,Bitmap.Config.ARGB_8888);
mcanvas = new Canvas(mbitmap);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
int a = metrics.widthPixels; // to get width of the screen
int b = metrics.heightPixels;
canvas.drawCircle(a/2,((b/2)-160),50, paint);
if ((canDraw)) {
canvas.drawPath(path, paint);
}
}
private void startTouch (float x , float y){
if ((canDraw)) {
path.moveTo(x,y);
mX = x;
mY = y ;
}}
public void moveTouche (float x,float y) {
if ((canDraw)) {
float dx = Math.abs(x - mX);
float dy = Math.abs(y - mY);
if(dx >= Tolerance || dy >= Tolerance){
path.quadTo(mX,mY,(x+mX)/2,(y+mY)/2);
mX = x ;
mY = y;
}}
}
private void upTouch(){
if ((canDraw)) {
path.lineTo(mX,mY);
}}
@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
startTouch(x,y);
invalidate();
break ;
case MotionEvent.ACTION_UP:
upTouch();
invalidate();
break ;
case MotionEvent.ACTION_MOVE:
moveTouche(x,y);
invalidate();
break;
}
return true ;
}
}
так я пытался с этим 'частное булевой touchIsInsideCircle (флоат х, поплавок у) { int a = metrics.widthPixels; // для получения ширины экрана int b = metrics.heightPixels; return (x < a/2 && x > a/2 && y <((b/2) -160) && y> ((b/2) -160))} ' Это координаты круга, проблема всегда начинается с рисунка с x == 0 и y == 0, и каждый раз, когда я касаюсь экрана, точки соединены – CamlX