我正在尝试使用旋转,缩放和滚动功能创建自定义ImageView
。我正在使用GestureDetector.SimpleOnGestureListener
来获取滚动值。
旋转和缩放功能正常工作,滚动功能也正常工作,直到我以某个角度旋转ImageView
。例如,如果我在ImageView
上从左向右滚动,onScroll
会返回distanceX
的某个值,distanceY
则会返回0。但是,如果我将ImageView
旋转90度,onScroll
会为distanceX
返回大约0,对于同一手势则会返回distanceY
的某些值。
我尝试使用Matrix
使用以下方法映射这些“距离”值:
private PointF rotate(float distanceX, float distanceY) {
Matrix transform = new Matrix();
transform.setRotate(imageView.getRotation());
float[] pts = new float[2];
pts[0] = distanceX;
pts[1] = distanceY;
transform.mapPoints(pts);
return new PointF(pts[0], pts[1]);
}
但它不起作用。那么如何获得旋转视图的滚动值? 谢谢你的帮助。