请参阅下面的每个部分,以三种不同的方式描述我的问题.希望能帮助人们回答.
问题:在给定原始比例点和比例因子的情况下,如果只有以缩放图像表示的坐标,如何在画布/用户空间中找到一对坐标?
实践中的问题:
我目前正在尝试复制应用程序中使用的缩放功能,例如图库/地图,当您可以缩放缩放/缩小时缩放移向夹点的中点.
在向下我保存缩放的中心点(基于当前屏幕的X,Y坐标).然后我在检测到"缩放"手势时执行此功能:
class ImageScaleGestureDetector extends SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
if(mScaleAllowed)
mCustomImageView.scale(detector.getScaleFactor(), mCenterX, mCenterY);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
CustomImageView的缩放功能如下所示:
public boolean scale(float scaleFactor, float focusX, float focusY) {
mScaleFactor *= scaleFactor;
// Don't let the object get too small or too large.
mScaleFactor = Math.max(MINIMUM_SCALE_VALUE, Math.min(mScaleFactor, 5.0f));
mCenterScaleX = focusX;
mCenterScaleY = focusY;
invalidate();
return true;
}
Run Code Online (Sandbox Code Playgroud)
通过覆盖onDraw方法来实现缩放图像的绘制,该方法在中心周围缩放画布并将图像绘制到其中.
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
canvas.translate(mCenterScaleX, mCenterScaleY);
canvas.scale(mScaleFactor, mScaleFactor);
canvas.translate(-mCenterScaleX, -mCenterScaleY);
mIcon.draw(canvas); …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我正在使用Google地图上的标记显示地点。但是我会立即标记所有我不想做的地方。我想通过获取地图坐标来显示仅适合屏幕的位置,如下所示:

我只想通过发送地图坐标来从源中获取此范围内可用的位置。我不确定是否应该从屏幕的各个角落捕获所有4个坐标?
谁能帮我解决这个问题?