Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# PointerIndex超出范围|收缩缩放Xamarin.Android_C#_Android - Fatal编程技术网

C# PointerIndex超出范围|收缩缩放Xamarin.Android

C# PointerIndex超出范围|收缩缩放Xamarin.Android,c#,android,C#,Android,有很多线程都有相同的标题,但它看起来真的像是因为很多不同的原因而抛出的。我确实读过所有的书,但似乎没有一本是关于这本书的。这是我正在制作的一款定制相机的缩比变焦实现的一部分 public override bool OnTouchEvent(MotionEvent e) { if (e.PointerCount == 1) { } switch (e.ActionMasked & MotionEventAct

有很多线程都有相同的标题,但它看起来真的像是因为很多不同的原因而抛出的。我确实读过所有的书,但似乎没有一本是关于这本书的。这是我正在制作的一款定制相机的缩比变焦实现的一部分

    public override bool OnTouchEvent(MotionEvent e)
    {
        if (e.PointerCount == 1)
        {
        }
        switch (e.ActionMasked & MotionEventActions.Mask)
        {
            case MotionEventActions.Down:
                oldDist = getFingerSpacing(e);
                break;
            case MotionEventActions.Move:
                float newDist = getFingerSpacing(e);
                if (newDist > oldDist)
                {
                    handleZoom(true, camera);
                }
                else if (newDist < oldDist)
                {
                    handleZoom(false, camera);
                }
                oldDist = newDist;
                break;
        }
        return true;
    }



    private void handleZoom(Boolean isZoomIn, Android.Hardware.Camera camera)
    {
        Android.Hardware.Camera.Parameters parameters = camera.GetParameters();
        if (parameters.IsZoomSupported)
        {
            int maxZoom = parameters.MaxZoom;
            int zoom = parameters.Zoom;
            if (isZoomIn && zoom < maxZoom)
            {
                zoom++;
            }
            else if (zoom > 0)
            {
                zoom--;
            }
            parameters.Zoom = zoom;
            camera.SetParameters(parameters);
        }
        else
        {
            Android.Util.Log.Error("lv", "zoom not supported");
        }
    }



    private static float getFingerSpacing(MotionEvent e)
    {
//Here's where I get it
        float x = e.GetX(0) - e.GetX(1);
        float y = e.GetY(0) - e.GetY(1);

        return (float)Math.Sqrt(x * x + y * y);
    }
public override bool OnTouchEvent(运动事件e)
{
如果(e.PointerCount==1)
{
}
开关(如ActionMasked和MotionEventActions.Mask)
{
案例MotionEventActions.Down:
oldDist=getFingerSpacing(e);
打破
case MotionEventActions。移动:
float newDist=getFingerSpacing(e);
如果(newDist>oldDist)
{
handleZoom(真实,照相机);
}
else if(newDist0)
{
缩放--;
}
参数。缩放=缩放;
设置参数(参数);
}
其他的
{
Android.Util.Log.Error(“lv”,“不支持缩放”);
}
}
专用静态浮点getFingerSpacing(运动事件e)
{
//这是我得到它的地方
浮动x=e.GetX(0)-e.GetX(1);
浮动y=e.GetY(0)-e.GetY(1);
返回(浮点)数学Sqrt(x*x+y*y);
}
Java.Lang.IllegalArgumentException Mensaje=指针索引超出范围

任何帮助都会很棒