我想使用刻度手势在水平或垂直上缩放帆布。我尝试了样本,但它们保持纵横比。但是我只想垂直缩放或水平缩放。
我已经以某种方式解决了我的问题。这是Iam在做什么。如果有人有更好的解决方案,请告诉我。 谢谢
私有类ScaleListener扩展了Scale gesteMesureDetector.simpleonscalesturelisteristener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
float xScale = detector.getCurrentSpanX() / detector.getPreviousSpanX();
float yScale = detector.getCurrentSpanY() / detector.getPreviousSpanY();
float diffSpanX = detector.getCurrentSpan() - detector.getPreviousSpanX();
float diffSpanY = detector.getCurrentSpan() - detector.getPreviousSpanY();
/**
* Ignore scaleX
*/
if (diffSpanX > diffSpanY) {
scaleFactorY *= yScale;
scaleFactorY = Math.max(0.1f, Math.min(scaleFactorY, 5.0f));
} else {
scaleFactorX *= xScale;
scaleFactorX = Math.max(0.1f, Math.min(scaleFactorX, 5.0f));
}
update(scaleFactorX, scaleFactorY);
return true;
}
}