ImageView.setPivot属性不响应数据

时间:2017-04-11 23:52:56

标签: java android view imageview

我在屏幕上旋转图像时遇到问题,总是在相同的枢轴点上旋转,我理解的是(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(任何东西)里面,它只是在同一点上转动,这个问题有什么提示吗?

enter image description here

期望的结果:

enter image description here

1 个答案:

答案 0 :(得分:0)

默认情况下,视图的轴心点是中心,即(width/2, height/2)。 此外,它不是您正在旋转的图像,而是视图,这意味着如果您的图像未在视图中完全缩放,您将会有奇怪的行为。

要实现您要执行的操作,您需要在坐标(0, height)处设置轴心点,并通过将中的角度传递给setRotation方法来旋转视图。并尝试使用临时scaleType=fitXY来查看旋转时视图中图像的真实情况。

希望它有所帮助!