【发布时间】:2020-04-06 09:21:09
【问题描述】:
我有一个问题。 我创建了一个 CustomView,我可以在其中拖放视图,但现在我还想为其添加缩放/旋转功能。现在这里是为移动视图而创建的 OnTouchEvent:
public override bool OnTouchEvent(MotionEvent e)
{
float x = e.RawX;
float y = e.RawY;
var dragView = Element as DraggableView.DraggableView;
switch (e.Action)
{
case MotionEventActions.Down:
if (dragView.DragMode == DragMode.Touch)
{
if (!touchedDown)
{
if (firstTime)
{
originalX = GetX();
originalY = GetY();
firstTime = false;
}
dragView.DragStarted();
}
TextMoved = false;
touchedDown = true;
stopwatch.Start();
}
dX = x - this.GetX();
dY = y - this.GetY();
break;
case MotionEventActions.Move:
if (touchedDown)
{
if (dragView.DragDirection == DragDirectionType.All || dragView.DragDirection == DragDirectionType.Horizontal)
{
SetX(x - dX);
}
if (dragView.DragDirection == DragDirectionType.All || dragView.DragDirection == DragDirectionType.Vertical)
{
SetY(y - dY);
}
TextMoved = true;
}
break;
case MotionEventActions.Up:
touchedDown = false;
if(TextMoved == true)
{
dragView.DragEnded();
}
else
{
MessagingCenter.Send<object, DraggableView.DraggableView>(this, "EditSelectedText", dragView);
}
break;
case MotionEventActions.Cancel:
touchedDown = false;
break;
}
return base.OnTouchEvent(e);
}
但现在我还需要缩放/旋转功能。 问题是我已经为我的skiasharp 位图创建了它,但这不是skiasharp,所以我不能使用它。
如何在没有skiasharp的情况下在OnTouchEvent中实现这个功能?
【问题讨论】:
-
您好,您的意思是用手指触摸来实现缩放/旋转到 ContentView 吗?这里有一个关于Scale/Rotate的样本,你可以看看。
标签: c# xamarin xamarin.forms xamarin.android xamarin.ios