0

我正在使用来自 github 的 TouchImageView 并使用 matrix.posttranslate 来处理拖动缩放图像的用户控制。问题是我需要知道用户何时拖动到图像的边框,因此图像不能再水平移动。有没有人对此有理想?

4

2 回答 2

1

如果你不旋转你的Matrix第二个和第五个元素是translateXand translateY

    final Matrix matrix = ...;
    final float[] values = new float[9];

    matrix.getValues(values);

    final float translateX = values[2];
    final float translateY = values[5];
于 2013-01-10T10:11:53.480 回答
0

谢谢。在深入阅读了 github 上画廊的源代码后,我得到了解决方案。要检查是否滑动到右边框:

float scaledWidth = Math.round(mOrigWidth * mSaveScale);
                    if (Math.abs(mViewWidth - translateX - scaledWidth) <= 1.0) {
                        // drag to right border
                        ALog.d("touchimageview", "right x: "
                                + (mViewWidth - translateX - scaledWidth));
                        touchEventListener.onZoomToOriginal();
                        break;
                    }
于 2013-01-10T14:41:10.387 回答