Пример #1
0
        void HandleImageDrop(DragEvent e)
        {
            var item = e.ClipData.GetItemAt(0);
            var vw   = e.LocalState.JavaCast <View>();

            //Remove the local image view, vw is null if drop from another app
            if (vw != null)
            {
                var owner = (ViewGroup)vw.Parent;
                owner.RemoveView(vw);
            }
            else
            {
                ImageView imageView = new ImageView(Context);
                var       uri       = item.Uri;
                if (ContentResolver.SchemeContent.Equals(uri.Scheme, StringComparison.OrdinalIgnoreCase))
                {
                    // Accessing a "content" scheme Uri requires a permission grant.
                    var dropPermissions = ActivityCompat.RequestDragAndDropPermissions(this.Activity, e);

                    if (dropPermissions == null)
                    {
                        // Permission could not be obtained.
                        return;
                    }

                    imageView.SetImageURI(uri);
                }
                else
                {
                    // Other schemes (such as "android.resource") do not require a permission grant.
                    imageView.SetImageURI(uri);
                }

                vw = imageView;
            }

            imageDropContainer.RemoveAllViews();
            imageDropContainer.AddView(vw);
            vw.Visibility = ViewStates.Visible;
        }