확대/축소 후 원을 그리려하고 올바른 위치에 그려지지 않았습니다. 밖으로 줌으로 잘 작동합니다. 확대/축소 후에 어떤 요인을 고려해야합니까? 어떤 것은 스케일 인수와 같습니다. 원의 반경도 증가합니다. 확대/축소 후에도 올바르게 그릴 필요가 있습니다.확대/축소 후 안드로이드 좌표
public boolean onTouch(View v, MotionEvent rawEvent) {
WrapMotionEvent event = WrapMotionEvent.wrap(rawEvent);
ImageView view = (ImageView) v;
view.setScaleType(ImageView.ScaleType.MATRIX);
if (isZoomRequired == false) //draw circle when zoom is off.
{
x = (int) rawEvent.getX();
y = (int) rawEvent.getY();
r = SettingsActivity.brushsize;
pcanvas.drawCircle(x, y, r, mPaint);
layers[1] = new BitmapDrawable(bitmap);
LayerDrawable layerDrawable = new LayerDrawable(layers);
view.setImageDrawable(layerDrawable);
}
else //zoom when zoom is on or button selected
{
// Handle touch events here...
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
savedMatrix.set(matrix);
start.set(event.getX(), event.getY());
Log.d(TAG, "mode=DRAG");
mode = DRAG;
break;
case MotionEvent.ACTION_POINTER_DOWN:
oldDist = spacing(event);
Log.d(TAG, "oldDist=" + oldDist);
if (oldDist > 10f) {
savedMatrix.set(matrix);
midPoint(mid, event);
mode = ZOOM;
Log.d(TAG, "mode=ZOOM");
}
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_POINTER_UP:
mode = NONE;
Log.d(TAG, "mode=NONE");
break;
case MotionEvent.ACTION_MOVE:
if (mode == DRAG) {
// ...
matrix.set(savedMatrix);
matrix.postTranslate(event.getX() - start.x,
event.getY() - start.y);
}
else if (mode == ZOOM) {
float newDist = spacing(event);
Log.d(TAG, "newDist=" + newDist);
if (newDist > 10f) {
matrix.set(savedMatrix);
scale = newDist/oldDist;
matrix.postScale(scale, scale, mid.x, mid.y);
}
}
break;
}
view.setImageMatrix(matrix);
}
}
안드로이드를 확대 한 후 x, y 좌표를 계산하는 방법은 무엇입니까? 줌 후 원의 반경도 표시됩니다. 도움이 될 것입니다.
나는 내 질문에 업데이트되었습니다. 확대/축소 후 원을 그리려고합니다. 하지만 줌 후 정확한 지점에서 그릴 수 없습니다. 줌 수준을 사용하여 줌 후 x, y 좌표를 계산할 수식이 있습니까? 밖으로 줌으로 정확한 지점에서 그릴 수 있습니다. 확대 한 후에 정확한 위치에 그리지 않을 것입니다. 친절하게도 줌 및 원의 반지름 다음에 x, y 좌표를 계산하는 방법을 알려주세요. – pavan
이제 아래 행을 사용하여 행렬을 캔버스로 설정합니다. pcanvas.setMatrix (matrix); . 그러나 약간 개선이있다 그러나 아직도 문제는 존재한다. – pavan
안녕하세요 Pavan이 솔루션을 찾으십시오 this.pls 솔루션을 찾으십시오. 감사 –