Esiste un tutorial che mi consenta di progettare visualizzazioni personalizzate in xamarin? Voglio creare funzionalità di zoom con pinch per la mia app Android utilizzando xamarin.Come costruire visualizzazioni personalizzate in xamarin
ho cercato seguente codice, ma la sua non lavorando, sto ottenendo sempre android.view.InflateException: Binary XML file line #1: Error inflating class LA_Application.ZoomView
errore
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Util;
using Android.Views;
using Android.Widget;
using Android.Graphics;
namespace LA_Application
{
public class ZoomView : FrameLayout
{
private ScaleGestureDetector mScaleDetector;
private static float mScaleFactor = 1.0f;
public ZoomView (Context context) : base (context)
{
Initialize();
}
public ZoomView (Context context, IAttributeSet attrs) : base (context,attrs)
{
Initialize();
}
public ZoomView (Context context, IAttributeSet attrs, int defStyle) : base (context, attrs, defStyle)
{
Initialize();
}
void Initialize()
{
mScaleDetector = new ScaleGestureDetector(Context, new ScaleListener());
}
public override bool OnTouchEvent (MotionEvent e)
{
mScaleDetector.OnTouchEvent(e);
return true;
}
protected override void OnDraw(Android.Graphics.Canvas canvas)
{
base.OnDraw(canvas);
canvas.Save();
canvas.Scale(mScaleFactor, mScaleFactor);
canvas.Restore();
}
}
private class ScaleListener : ScaleGestureDetector.SimpleOnScaleGestureListener
{
public override bool OnScale(ScaleGestureDetector detector)
{
mScaleFactor *= detector.ScaleFactor;
// Don't let the object get too small or too large.
mScaleFactor = Math.Max(0.1f, Math.Min(mScaleFactor, 5.0f));
return true;
}
}
}
}
e nel file di layout
<?xml version="1.0" encoding="utf-8"?>
<LA_Application.ZoomView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/my_view" />
codice attività
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView(Resource.Layout.zoomview);
/*some code*/
}
non esiste un file xml generato in Xamarin, solo file C# - qualche idea? –