我有个问题。我正在使用SkiaSharp制作一个TriangleGrid。现在我正在绘制网格,但是现在我想触摸网格中的一个三角形来给它着色。要做到这一点,我需要添加一个TouchEvent到SKCanvasView,但我不知道如何做到这一点。
在互联网上,我可以找到下一个例子:
但是我使用的是Xamarin Android,而这些示例在我的代码中不起作用。我还试图使用:
skiaView = FindViewById<SkiaSharp.Views.Android.SKCanvasView>(Resource.Id.skiaView);
skiaView.SetOnTouchListener += OnTouch;
但这给了我一个错误:“不能分配给'SetOnTouchListener‘,因为它是一个’方法组‘”
有人能帮我在我的TouchListener画布上找到一个SkiaSharp吗?
发布于 2019-04-30 01:34:45
如果使用错误的方法添加事件,可以设置如下OnTouch
事件:
skiaView= FindViewById<SKCanvasView>(Resource.Id.skiaView);
skiaView.Touch += onTouch;
private void onTouch(object sender, View.TouchEventArgs e)
{
Toast.MakeText(this, "touch", ToastLength.Short).Show();
}
或:
public class MainActivity : AppCompatActivity,View.IOnTouchListener
{
private SKCanvasView skiaView;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
skiaView= FindViewById<SKCanvasView>(Resource.Id.skiaView);
skiaView.SetOnTouchListener(this);
...
}
public bool OnTouch(View v, MotionEvent e)
{
Toast.MakeText(this,"touch",ToastLength.Short).Show();
return true;
}
}
https://stackoverflow.com/questions/55910942
复制相似问题