1

我的 Android Applikation 可以像这样绘制多个圆圈: 在此处输入图像描述

用户还可以拖动圆圈并对其进行缩放。当涉及到缩放时,我使用了:

canvas.save();
   canvas.scale(this.scaleFactor, this.scaleFactor, this.centerX, this.centerY);
   // draw main circle
   canvas.drawCircle(this.centerX, this.centerY, this.radius, this.outerCirclePaint);
   ...

一切都很好,除了圆圈周围每个文本的边界框。每个文本都应该是可触摸的(而不是在 canvas.scale 之后)。所以我也尝试用不同的方法和不同的结果来缩放边界框。当我只是将框的左、上、右、下相乘时,只有当圆心在 0,0 时,文本才可触摸。所以我不知道为什么它被翻译成0,0。

txtBounds.set(txtBounds.left * this.scaleFactor, txtBounds.top * this.scaleFactor, txtBounds.right * this.scaleFactor, txtBounds.bottom * this.scaleFactor);

当我使用矩阵来缩放盒子时,盒子似乎没问题,但它不再可触摸

matrixBounds.setScale(this.scaleFactor, this.scaleFactor, txtBounds.centerX(), txtBounds.centerY());

该框也可能被翻译到另一个点。有任何想法吗?如果需要,我还可以发布更多源代码。

4

0 回答 0