2017-04-11 5 views
0

画面内の画像を回転させるときに問題が発生しました。(0,0)がわかっている同じピボットポイントで常に回転しています。これが私の試行方法ですそれを達成:ImageView.setPivotプロパティがデータに応答しません

かかわらず、私はsetPivot(何でも)それはちょうどこの問題で、同じポイントを介して任意のヒントを旋回保つの内側に入れたものを
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)); 
} 

enter image description here

所望の結果:デフォルト

enter image description here

答えて

0

ビューのピボット点は、中心、即ち(width/2, height/2)あります。 さらに、回転している画像ではなく、ビューで表示されます。つまり、画像が完全に拡大表示されていないと、奇妙な振る舞いをすることになります。あなたがあなたをやろうとしているものを達成するために

座標(0, height)でピボットポイントを設定し、setRotation方法にに角度を渡すことでビューを回転する必要があります。また、回転したときにビュー内の画像に実際に何が起こるかを見るには、一時的にscaleType=fitXYを使用してみてください。

希望すると助かります!

関連する問題