我在屏幕上旋转图像时遇到问题,总是在相同的枢轴点上旋转,我理解的是(0,0),这就是我试图实现它的方式:
private Evidence setVehiclePosition (String sCombination, PointF startPoint,
PointF endPoint, int position, final Evidence myEvidence) {
myEvidence.geteImage().setOnTouchListener(this);
imgViewSelected.setPivotX(imgViewSelected.getWidth());
imgViewSelected.setPivotY(imgViewSelected.getHeight());
double angle = MyTrigonometry.angleTwoVectors(startPoint, endPoint);
PointF imageLocation = null;
switch (sCombination){
case "C1":
//angle += 180;
break;
case "C2":
angle += 90;
break;
case "C3":
break;
case "C4":
//angle += 270;
break;
}
imgViewSelected.setRotation((int) angle);
imageLocation =
MyConvert.MtsToPixs(MyTrigonometry.getCornerrPoint(startPoint, endPoint,
MyConvert.PixsToMts(myEvidence.geteImage().getHeight())));
imgViewSelected.setTranslationX((imageLocation.x +
MyConvert.getOffset().x));
imgViewSelected.setTranslationY(MyConvert.getScreenResolution().y - ((imageLocation.y) + MyConvert.getOffset().y));
}
无论我把它放在setPivot(任何东西)里面,它只是在同一点上转动,这个问题有什么提示吗?
期望的结果:
答案 0 :(得分:0)
默认情况下,视图的轴心点是中心,即(width/2, height/2)
。
此外,它不是您正在旋转的图像,而是视图,这意味着如果您的图像未在视图中完全缩放,您将会有奇怪的行为。
要实现您要执行的操作,您需要在坐标(0, height)
处设置轴心点,并通过将度中的角度传递给setRotation
方法来旋转视图。并尝试使用临时scaleType=fitXY
来查看旋转时视图中图像的真实情况。
希望它有所帮助!