Как добавить событие OnTouch в Android с SkiaSharp - PullRequest
0 голосов
/ 30 апреля 2019

У меня проблема.Я использую SkiaSharp, чтобы сделать TriangleGrid.Сейчас я делаю рисование сетки, но теперь я хочу коснуться треугольника в сетке, чтобы раскрасить его.Для этого мне нужно добавить TouchEvent в SKCanvasView, но я не знаю, как это сделать.

В Интернете я могу найти следующий пример:

Но я использую Android Xamarin, и этот пример не работает в моем коде.Я также пытался использовать:

skiaView = FindViewById<SkiaSharp.Views.Android.SKCanvasView>(Resource.Id.skiaView);
skiaView.SetOnTouchListener += OnTouch;

Но это дает мне ошибку: «Невозможно назначить« SetOnTouchListener », потому что это« группа методов »»

Может кто-нибудь помочь мне получитьTouchListener на моем холсте SkiaSharp!?

1 Ответ

2 голосов
/ 30 апреля 2019

Вы используете неправильный метод для добавления события, вы можете установить 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;
      }
  }
...