我一直致力于在我使用 TouchImageView 的容器中平移图像。我想要实现的是我想翻译一些关于平移量的其他观点,即翻译。
下面是用户进行平移事件时的 ACTION_MOVE 事件。
case MotionEvent.ACTION_MOVE:
if (state == State.DRAG) {
float deltaX = curr.x - last.x;
float deltaY = curr.y - last.y;
float fixTransX = getFixDragTrans(deltaX, viewWidth, getImageWidth());
float fixTransY = getFixDragTrans(deltaY, viewHeight, getImageHeight());
matrix.postTranslate(fixTransX, fixTransY);
fixTrans();
// this is my function for callbacks.
// This is where I want to restrict callback if translation values from matrix is 0 after scaling / zooming
// but it still gives values > 0 if trying to pan.
moveViewsWithSameDistance(fixTransX, fixTransY);
last.set(curr.x, curr.y);
}
break;
我面临的问题是在平移图像上翻译标签时效果很好。但是当图像达到它的界限时,它仍然会得到大于/小于 0 的 translationX 或 translationY 值,这使得我的标签超出了界限。有什么办法可以限制额外的翻译。?我试过矩阵法。在缩放图像时达到其边界后,我仍然得到高于 0 的平移值。