我正在使用来自github的TouchImageView并使用matrix.posttranslate来处理拖动缩放图像的用户控制。问题是我需要知道用户何时拖动到图像的边框,因此图像不能再水平移动。有人有理想吗?
答案 0 :(得分:1)
如果您没有轮换Matrix
,则第二和第五个元素为translateX
和translateY
:
final Matrix matrix = ...;
final float[] values = new float[9];
matrix.getValues(values);
final float translateX = values[2];
final float translateY = values[5];
答案 1 :(得分:0)
感谢。在深入阅读github上的gallery源代码之后,我得到了解决方案。要检查是否向右滑动边框:
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;
}