Exemple #1
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            SetContentView(Resource.Layout.Main);

            experimentNames = new string[] {
                "Mystery Experiment",
                "Anticipation",
                "Squash/Stretch"
            };
            experimentSwitchers = new Action[] {
                SwitchToExperiment <BounceMarkerContentFragment>,
                SwitchToExperiment <AnticipationContentFragment>,
                SwitchToExperiment <SquashStretchContentFragment>
            };
            availableCurves = new ITimeCurve[] {
                new LinearCurve(),
                new QuadraticCurve(),
                new InvertedQuadraticCurve(),
                new PowerCurve(5),
                new SineCurve()
            };

            graph             = FindViewById <InterpolatorGraphView> (Resource.Id.graphView);
            slowMode          = FindViewById <CheckBox> (Resource.Id.slowMotion);
            start             = FindViewById <Button> (Resource.Id.start);
            experimentSpinner = FindViewById <Spinner> (Resource.Id.experimentSpinner);
            curveName         = FindViewById <Spinner> (Resource.Id.curveName);

            var adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem, experimentNames);

            adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
            experimentSpinner.Adapter       = adapter;
            experimentSpinner.ItemSelected += (sender, e) => experimentSwitchers [e.Position] ();

            var curveNames = new System.Collections.Generic.List <string> {
                "Default"
            };

            curveNames.AddRange(availableCurves.Select(c => ToHumanString(c.GetType().Name)));
            adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleSpinnerItem, curveNames.ToArray());
            adapter.SetDropDownViewResource(Android.Resource.Layout.SimpleSpinnerDropDownItem);
            curveName.Adapter       = adapter;
            curveName.ItemSelected += HandleCurveSelected;

            start.Click += (sender, e) => {
                if (currentExperiment == null)
                {
                    return;
                }
                graph.SetAnimationCompletion(0);
                currentExperiment.AnimationCurrentCompletion += graph.SetAnimationCompletion;
                currentExperiment.StartAnimation(slowMode.Checked);
            };

            SwitchToExperiment <BounceMarkerContentFragment> ();
        }