protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { if (requestCode == VOICE) { if (resultCode == Result.Ok) { var matches = data.GetStringArrayListExtra(RecognizerIntent.ExtraResults); if (matches.Count != 0) { string textInput = matches[0]; MessagingCenter.Send <IMessageSender, string>(this, "STT", textInput); } else { MessagingCenter.Send <IMessageSender, string>(this, "STT", "No input"); } } } base.OnActivityResult(requestCode, resultCode, data); //If we are calling multiple image selection, enter into here and return photos and their filepaths. if (requestCode == OPENGALLERYCODE && resultCode == Result.Ok) { List <string> images = new List <string>(); if (data != null) { //Separate all photos and get the path from them all individually. ClipData clipData = data.ClipData; if (clipData != null) { for (int i = 0; i < clipData.ItemCount; i++) { ClipData.Item item = clipData.GetItemAt(i); Android.Net.Uri uri = item.Uri; var path = GetRealPathFromURI(uri); if (path != null) { images.Add(path); } } } else { Android.Net.Uri uri = data.Data; var path = GetRealPathFromURI(uri); if (path != null) { images.Add(path); } } //Send our images to the carousel view. MessagingCenter.Send <App, List <string> >((App)Xamarin.Forms.Application.Current, "ImagesSelectedAndroid", images); } } }
private void Process(ClipData clipData) { for (int i = 0; i < clipData.ItemCount; i++) { var uri = clipData.GetItemAt(i).Uri; ProcessUri(uri); } }
/// <summary> /// To be added. /// </summary> /// <param name="clipData"></param> /// <returns></returns> public static Net.Uri[] ToUriArray(this ClipData clipData) { var array = new Net.Uri[clipData.ItemCount]; for (var i = 0; i < clipData.ItemCount; i++) { array[i] = clipData.GetItemAt(i).Uri; } return(array); }
protected override async void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); InAppBillingImplementation.HandleActivityResult(requestCode, resultCode, data); if (requestCode == OPENGALLERYCODE && resultCode == Result.Ok) { List <byte[]> images = new List <byte[]>(); if (data != null) { ClipData clipData = data.ClipData; // if clipData exists, it means there are more than 1 image if (clipData != null) { // we need to send this message so the view can show loading MessagingCenter.Send <object>(this, MessagingKeys.ShowLoadingIndicator); for (int i = 0; i < clipData.ItemCount; i++) { if (i > 5) { break; } // limit to 5 images try { ClipData.Item item = clipData.GetItemAt(i); var uri = item.Uri; await Task.Run(() => { images.Add(PhotoUtilHelper.UpdateAndConvertURI(this, uri)); }); } catch (Exception ex) { Console.WriteLine(ex.Message); } } } else { try { MessagingCenter.Send <object>(this, MessagingKeys.ShowLoadingIndicator); var uri = data.Data; await Task.Run(() => { images.Add(PhotoUtilHelper.UpdateAndConvertURI(this, uri)); }); } catch (Exception ex) { Console.WriteLine(ex.Message); } } // post the message with the list attached MessagingCenter.Send <object, object>(this, MessagingKeys.DidFinishSelectingImages, images); } } }
public async Task OnActivityResult(int requestCode, Result resultCode, Intent data) { var mediaPicked = new ObservableCollection <MediaFile>(); var tasks = new List <Task>(); if (requestCode == MultiPickerResultCode) { if (resultCode == Result.Ok) { if (data != null) { ClipData clipData = data.ClipData; if (clipData != null) { for (int i = 0; i < clipData.ItemCount; i++) { ClipData.Item item = clipData.GetItemAt(i); Android.Net.Uri uri = item.Uri; tasks.Add(Task.Run( () => { var media = CreateMediaFileFromUri(uri); if (media != null) { lock (Obj) { mediaPicked.Add(media); } OnMediaPicked?.Invoke(this, media); } })); } } else { Android.Net.Uri uri = data.Data; var media = CreateMediaFileFromUri(uri); if (media != null) { mediaPicked.Add(media); OnMediaPicked?.Invoke(this, media); } } } } await Task.WhenAll(tasks); OnMediaPickedCompleted?.Invoke(this, mediaPicked); _mediaPickedTcs?.TrySetResult(mediaPicked); } }
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); //NuGet Initializations CarouselViewRenderer.Init(); FFImageLoading.Forms.Platform.CachedImageRenderer.Init(enableFastRenderer: false); //If we are calling multiple image selection, enter into here and return photos and their filepaths. if (requestCode == OPENGALLERYCODE && resultCode == Result.Ok) { List <string> images = new List <string>(); if (data != null) { //Separate all photos and get the path from them all individually. ClipData clipData = data.ClipData; if (clipData != null) { for (int i = 0; i < clipData.ItemCount; i++) { ClipData.Item item = clipData.GetItemAt(i); Android.Net.Uri uri = item.Uri; var path = GetRealPathFromURI(uri); if (path != null) { images.Add(path); } } } else { Android.Net.Uri uri = data.Data; var path = GetRealPathFromURI(uri); if (path != null) { images.Add(path); } } //Send our images to the carousel view. MessagingCenter.Send <App, List <string> >((App)Xamarin.Forms.Application.Current, "ImagesSelectedAndroid", images); items = new ObservableCollection <App>(); } } }
private void GetSelectedPictures(Intent data) { if (data.Data != null) { uriList.Add(data.Data); } else { ClipData multiplePictures = data.ClipData; for (int i = 0; i < multiplePictures.ItemCount; i++) { uriList.Add(multiplePictures.GetItemAt(i).Uri); } } }
public string ReadClipboard() { if (Build.VERSION.SdkInt < BuildVersionCodes.Honeycomb) { return(((ClipboardManager)context.GetSystemService(Context.ClipboardService)).Text.ToString()); } ClipData clip = ((ClipboardManager)context.GetSystemService(Context.ClipboardService)).PrimaryClip; if (clip != null && clip.ItemCount > 0) { return(clip.GetItemAt(0).CoerceToText(context).ToString()); } return(""); }
private static Task <List <string> > GetMultipleImagesFromGallery(Context context, Task <string> pathFuture, ClipData clipData, bool isPhoto) { Task <List <string> > taskPaths = Task.Run(() => { List <string> tasks = new List <string>(); for (var i = 0; i < clipData.ItemCount; i++) { var item = clipData.GetItemAt(i); pathFuture = GetFileForUriAsync(context, item.Uri, isPhoto, false); tasks.Add(pathFuture.Result); } return(tasks); }); return(taskPaths); }
public void OnActivityResult(int requestCode, Result resultCode, Intent data) { ObservableCollection <MediaModel> oCollection = null; if (requestCode == SOURCE_PICK_CODE) { if (resultCode == Result.Ok) { oCollection = new ObservableCollection <MediaModel>(); if (data != null) { ClipData oData = data.ClipData; if (oData != null) { for (int i = 0; i < oData.ItemCount; i++) { ClipData.Item oItem = oData.GetItemAt(i); Android.Net.Uri oUri = oItem.Uri; var oModel = CreateMediaModel(oUri); if (oModel != null) { oCollection.Add(oModel); OnMediaPicked?.Invoke(this, oModel); } } } else { Android.Net.Uri oUri = data.Data; var oModel = CreateMediaModel(oUri); if (oModel != null) { oCollection.Add(oModel); OnMediaPicked?.Invoke(this, oModel); } } OnMediaPickedCompleted?.Invoke(this, oCollection); } } _taskCompletionSource?.TrySetResult(oCollection); } }
public byte[] GetImageData() { ClipboardManager clipboard = (ClipboardManager)Forms.Context.GetSystemService(Context.ClipboardService); ContentResolver cr = Forms.Context.ContentResolver; ClipData clip = clipboard.PrimaryClip; byte[] p = null; if (clip != null) { // Gets the first item from the clipboard data ClipData.Item item = clip.GetItemAt(0); // Tries to get the item's contents as a URI Android.Net.Uri pasteUri = item.Uri; // If the clipboard contains a URI reference if (pasteUri != null) { // Is this a content URI? String uriMimeType = cr.GetType(pasteUri); // If the return value is not null, the Uri is a content Uri if (uriMimeType != null) { // Does the content provider offer a MIME type that the current application can use? if (uriMimeType.StartsWith("image/")) { // Get the data from the content provider. ICursor pasteCursor = cr.Query(pasteUri, null, null, null, null); // If the Cursor contains data, move to the first record if (pasteCursor != null) { if (pasteCursor.MoveToFirst()) { p = pasteCursor.GetBlob(0); } } // close the Cursor pasteCursor.Close(); } } } } return(p); }
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); if (requestCode == OPENGALLERYCODE && resultCode == Result.Ok) { List <string> images = new List <string>(); if (data != null) { ClipData clipData = data.ClipData; if (clipData != null) { for (int i = 0; i < clipData.ItemCount; i++) { ClipData.Item item = clipData.GetItemAt(i); Android.Net.Uri uri = item.Uri; var path = GetRealPathFromURI(uri); if (path != null) { //Rotate Image var imageRotated = ImageHelpers.RotateImage(path); var newPath = ImageHelpers.SaveFile("TmpPictures", imageRotated, System.DateTime.Now.ToString("yyyyMMddHHmmssfff")); images.Add(newPath); } } } else { Android.Net.Uri uri = data.Data; var path = GetRealPathFromURI(uri); if (path != null) { //Rotate Image var imageRotated = ImageHelpers.RotateImage(path); var newPath = ImageHelpers.SaveFile("TmpPictures", imageRotated, System.DateTime.Now.ToString("yyyyMMddHHmmssfff")); images.Add(newPath); } } MessagingCenter.Send <App, List <string> >((App)Xamarin.Forms.Application.Current, "ImagesSelected", images); } } }
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == Result.Ok) { // This is used to stock file paths var files = new List <Classes.File>(); // Get file(s) from ClipBoard if (data != null) { // Get ClipData from Intent, null if not multiple ClipData items ClipData clipData = data.ClipData; if (clipData != null) { // Multiple files returned by user for (int i = 0; i < clipData.ItemCount; i++) { // Get ClipData containin uri ClipData.Item item = clipData.GetItemAt(i); // Get file URI Android.Net.Uri uri = item.Uri; // Retreive Stream from uri and add it to files files.Add(new Classes.File(GetFileName(uri), ContentResolver.OpenInputStream(uri), GetFileLength(uri))); } } else { // Single File // Get URI var uri = data.Data; // Retreive Stream from uri and add it to files files.Add(new Classes.File(GetFileName(uri), ContentResolver.OpenInputStream(uri), GetFileLength(uri))); } // Dispose Recources data.Dispose(); // Sending Result to the SelectPage MessagingCenter.Send("MyApp", "FilesSent", files); } } }
protected override void OnActivityResult(int requestCode, Result resultCode, Intent intent) { base.OnActivityResult(requestCode, resultCode, intent); FacebookClientManager.OnActivityResult(requestCode, resultCode, intent); GoogleClientManager.OnAuthCompleted(requestCode, resultCode, intent); //If we are calling multiple image selection, enter into here and return photos and their filepaths. if (requestCode == OPENGALLERYCODE && resultCode == Result.Ok) { List <string> images = new List <string>(); if (intent != null) { //Separate all photos and get the path from them all individually. ClipData clipData = intent.ClipData; if (clipData != null) { for (int i = 0; i < clipData.ItemCount; i++) { ClipData.Item item = clipData.GetItemAt(i); Android.Net.Uri uri = item.Uri; var path = GetRealPathFromURI(uri); if (path != null) { images.Add(path); } } } else { Android.Net.Uri uri = intent.Data; var path = GetRealPathFromURI(uri); if (path != null) { images.Add(path); } } //Send our images to the carousel view. MessagingCenter.Send <App, List <string> >((App)Xamarin.Forms.Application.Current, "ImagesSelectedAndroid", images); } } }
public void OnActivityResult(int requestCode, Result resultCode, Intent data) { ObservableCollection <MediaFile> mediaPicked = null; if (requestCode == MultiPickerResultCode) { if (resultCode == Result.Ok) { mediaPicked = new ObservableCollection <MediaFile>(); if (data != null) { ClipData clipData = data.ClipData; if (clipData != null) { for (int i = 0; i < clipData.ItemCount; i++) { ClipData.Item item = clipData.GetItemAt(i); Android.Net.Uri uri = item.Uri; var media = CreateMediaFileFromUri(uri); if (media != null) { mediaPicked.Add(media); OnMediaPicked?.Invoke(this, media); } } } else { Android.Net.Uri uri = data.Data; var media = CreateMediaFileFromUri(uri); if (media != null) { mediaPicked.Add(media); OnMediaPicked?.Invoke(this, media); } } OnMediaPickedCompleted?.Invoke(this, mediaPicked); } } mediaPickedTcs?.TrySetResult(mediaPicked); } }
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); if (resultCode == Result.Ok) { if (data != null) { if (data.ClipData != null) { ClipData clipData = data.ClipData; if (clipData == null) { return; } System.Console.WriteLine(clipData.ItemCount); List <Android.Net.Uri> photoList = new List <Android.Net.Uri>(); for (int i = 0; i < clipData.ItemCount; i++) { ClipData.Item item = clipData.GetItemAt(i); var uri = item.Uri; //ImagePrint(uri); photoList.Add(uri); } listView.Adapter = new MyCustomListAdapter(photoList); } else if (data.Data != null) { List <Android.Net.Uri> photoList = new List <Android.Net.Uri>(); Android.Net.Uri uri = data.Data; //ImagePrint(uri); photoList.Add(uri); listView.Adapter = new MyCustomListAdapter(photoList); } } } }
protected override async void OnActivityResult(int requestCode, Result resultCode, Intent data) { if (requestCode == PickImageId) { if ((resultCode == Result.Ok) && (data != null)) { InitSpinner(); sendStatus.Text = "Connecting..."; List <string> files = new List <string>(); ClipData clipData = data.ClipData; if (clipData != null) { for (int i = 0; i < clipData.ItemCount; i++) { ClipData.Item item = clipData.GetItemAt(i); var uri = item.Uri; files.Add(FilePathHelper.GetPath(this, uri)); } } else { Android.Net.Uri uri = data.Data; var file = FilePathHelper.GetPath(this, uri); files.Add(file); } if (files.Count == 0) { Finish(); return; } await SendFiles(files.ToArray()); } else { Finish(); return; } } }
protected override void OnActivityResult(int requestCode, Result resultCode, Intent intent) { base.OnActivityResult(requestCode, resultCode, intent); List <string> mediaPicked = null; if ((resultCode == Result.Ok) && (intent != null)) { //Android.Net.Uri uri = intent.Data; //Stream stream = ContentResolver.OpenInputStream(uri); // //// Set the Stream as the completion of the Task //PickImageTaskCompletionSource.SetResult(stream); //mediaPicked = new IList<Stream>(); mediaPicked = new List <string>(); ClipData clipData = intent.ClipData; if (clipData != null) { for (int i = 0; i < clipData.ItemCount; i++) { ClipData.Item item = clipData.GetItemAt(i); //Android.Net.Uri uri = item.Uri; //Stream stream = ContentResolver.OpenInputStream(uri); //if (stream != null) //{ // mediaPicked.Add(stream); //} mediaPicked.Add(getPath(item.Uri)); ///external/images/media/424869 } } PickImageTaskCompletionSource.SetResult(mediaPicked); mediaPicked = new List <string>(); } else { PickImageTaskCompletionSource.SetResult(null); } }
bool ProcessDrop(DragEvent evt, ImageView imageView) { // Attempt to parse clip data with expected format: category||entry_id. // Ignore event if data does not conform to this format. ClipData data = evt.ClipData; if (data != null) { if (data.ItemCount > 0) { ClipData.Item item = data.GetItemAt(0); String textData = (String)item.Text; if (textData != null) { StringTokenizer tokenizer = new StringTokenizer(textData, "||"); if (tokenizer.CountTokens() != 2) { return(false); } int category = -1; int entryId = -1; try { category = Java.Lang.Integer.ParseInt(tokenizer.NextToken()); entryId = Java.Lang.Integer.ParseInt(tokenizer.NextToken()); } catch (NumberFormatException exception) { return(false); } UpdateContentAndRecycleBitmap(category, entryId); // Update list fragment with selected entry. TitlesFragment titlesFrag = (TitlesFragment) FragmentManager.FindFragmentById(Resource.Id.frag_title); titlesFrag.SelectPosition(entryId); return(true); } } } return(false); }
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { if (requestCode == 1) { #region GetDataFromGallery UploadPrescription UploadPrescription; var str = ""; base.OnActivityResult(requestCode, resultCode, data); if (resultCode == Result.Ok) { int Totalsize = 0; List <byte[]> images = new List <byte[]>(); List <string> imagename = new List <string>(); var IsValid = true; if (data != null) { ClipData clipData = data.ClipData; if (clipData != null) { if (clipData.ItemCount > 4) { MessagingCenter.Send <App, string>((App)Xamarin.Forms.Application.Current, "imagevalidation", "Please Upload Select 4 Images"); return; } for (int i = 0; i < clipData.ItemCount; i++) { ClipData.Item item = clipData.GetItemAt(i); Android.Net.Uri uri = item.Uri; var path = GetRealPathFromURI(uri); if (path != null) { //Rotate Image var imageRotated = DependencyService.Get <IImageHelpers>().RotateImage(path); Totalsize += imageRotated.Length; if (Totalsize > 10000000) { IsValid = false; MessagingCenter.Send <App, string>((App)Xamarin.Forms.Application.Current, "imagevalidation", "Image Cannot be Greater than 10 MB"); break; } //var newPath = ImageHelpers.SaveFile("TmpPictures", imageRotated, System.DateTime.Now.ToString("yyyyMMddHHmmssfff")); // str = System.Convert.ToBase64String(imageRotated); images.Add(imageRotated); imagename.Add(uri.LastPathSegment); // images.Add(newPath); } } } else { Android.Net.Uri uri = data.Data; var path = GetRealPathFromURI(uri); if (path != null) { //Rotate Image var imageRotated = DependencyService.Get <IImageHelpers>().RotateImage(path); Totalsize += imageRotated.Length; if (Totalsize > 10000000) { IsValid = false; MessagingCenter.Send <App, string>((App)Xamarin.Forms.Application.Current, "imagevalidation", "Image Cannot be Greater than 10 MB"); } // var newPath = ImageHelpers.SaveFile("TmpPictures", imageRotated, System.DateTime.Now.ToString("yyyyMMddHHmmssfff")); str = System.Convert.ToBase64String(imageRotated); images.Add(imageRotated); imagename.Add(uri.LastPathSegment); //images.Add(str); //images.Add(newPath); } } if (IsValid) { MessagingCenter.Send <App, List <byte[]> >((App)Xamarin.Forms.Application.Current, "ImagesSelected", images); } MessagingCenter.Send <App, List <string> >((App)Xamarin.Forms.Application.Current, "ImagesSelectedName", imagename); } } #endregion GetDataFromGallery } else { } }
/// <summary> /// Gets the current content that is stored in the clipboard object. /// </summary> /// <returns>Contains the content of the Clipboard.</returns> public static DataPackageView GetContent() { #if __ANDROID__ if (_clipboardManager.HasPrimaryClip) { DataPackage package = new DataPackage(); if (_clipboardManager.PrimaryClipDescription != null) { package.Properties.Description = _clipboardManager.PrimaryClipDescription.Label; } ClipData data = _clipboardManager.PrimaryClip; for (int i = 0; i < data.ItemCount; i++) { ClipData.Item item = data.GetItemAt(i); if (!string.IsNullOrEmpty(item.Text)) { package.SetText(item.Text); } else if (item.Uri != null) { package.SetWebLink(new Uri(item.Uri.ToString())); } } return(package.GetView()); } #elif __IOS__ if (UIPasteboard.General.Count > 0) { DataPackage package = new DataPackage(); var str = UIPasteboard.General.String; if (!string.IsNullOrEmpty(str)) { package.SetText(str); } var url = UIPasteboard.General.Url; if (url != null) { package.SetWebLink(new Uri(url.ToString())); } return(package.GetView()); } #elif __MAC__ if (!string.IsNullOrEmpty(NSPasteboard.GeneralPasteboard.GetAvailableTypeFromArray(new string[] { NSPasteboard.NSPasteboardTypeString }))) { DataPackage package = new DataPackage(); string str = NSPasteboard.GeneralPasteboard.GetStringForType(NSPasteboard.NSPasteboardTypeString); if (!string.IsNullOrEmpty(str)) { package.SetText(str); } return(package.GetView()); } #elif WINDOWS_PHONE_APP if (_on10) { var dpv = _type10.GetRuntimeMethod("GetContent", new Type[0]).Invoke(null, new object[0]) as Windows.ApplicationModel.DataTransfer.DataPackageView; if (dpv != null) { DataPackage package = new DataPackage(); if (!string.IsNullOrEmpty(dpv.Properties.Title)) { package.Properties.Title = dpv.Properties.Title; } if (!string.IsNullOrEmpty(dpv.Properties.Description)) { package.Properties.Description = dpv.Properties.Description; } foreach (string format in dpv.AvailableFormats) { if (format == StandardDataFormats.ApplicationLink || format == StandardDataFormats.WebLink || format == StandardDataFormats.Text) { Task <object> t = Task.Run <object>(async() => { return(await dpv.GetDataAsync(format)); }); t.Wait(); package.SetData(format, t.Result); } } return(package.GetView()); } } #elif WIN32 string txt = GetText(); if (!string.IsNullOrEmpty(txt)) { DataPackage package = new DataPackage(); package.SetText(txt); return(package.GetView()); } #else throw new PlatformNotSupportedException(); #endif return(null); }
public ClipData.Item this[int index] => m_ClipData.GetItemAt(index);
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { string SaveImageDir = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/Download/InterView/"; base.OnActivityResult(requestCode, resultCode, data); //如果使用者要選Image 且 是要選Image if (resultCode == Result.Ok && requestCode == ImagePick) { if (data.Data != null) { //再確認一次Appdir是否存在 this.DirCheck(SaveImageDir); //var imageView = FindViewById<ImageView> (Resource.Id.myImageView); //imageView.SetImageURI (data.Data); //得到Url物件,送去處理,回傳真實路徑 string Source = getPathFromUri(this, data.Data); //將回傳路徑丟進JAVA.IO.FILE利用NAME得到檔案名稱,組出新路徑跟檔案名稱 string Des = System.IO.Path.Combine(SaveImageDir + "/Slides", new Java.IO.File(Source).Name); if (new Java.IO.File(Des).Exists()) { //搬完檔案之後重新載入Slides //this.copy(new Java.IO.File(Source), new Java.IO.File(Des)); #region 縮圖 BitmapFactory.Options options = new BitmapFactory.Options(); options.InPreferredConfig = Bitmap.Config.Argb8888; Bitmap bitmap = BitmapFactory.DecodeFile(Source, options); double scale = 1f / 5f; Bitmap resizedBitmap = Bitmap.CreateScaledBitmap( bitmap, (Int32)(bitmap.Width * scale), (Int32)(bitmap.Height * scale), false ); Stream output = new FileStream(Des, FileMode.Create); resizedBitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, output); output.Flush(); output.Close(); #endregion gridviewShow.Adapter = new GridViewAdapter(this, queryFilesName(FindPngInPath(AppDir + "/Slides", visibleThings))); } else { #region 縮圖 BitmapFactory.Options options = new BitmapFactory.Options(); options.InPreferredConfig = Bitmap.Config.Argb8888; Bitmap bitmap = BitmapFactory.DecodeFile(Source, options); double scale = 1f / 4f; Bitmap resizedBitmap = Bitmap.CreateScaledBitmap( bitmap, (Int32)(bitmap.Width * scale), (Int32)(bitmap.Height * scale), false ); Stream output = new FileStream(Des, FileMode.Create); resizedBitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, output); output.Flush(); output.Close(); #endregion gridviewShow.Adapter = new GridViewAdapter(this, queryFilesName(FindPngInPath(AppDir + "/Slides", visibleThings))); } } else { ClipData clipData = data.ClipData; int count = clipData.ItemCount; if (count > 0) { Android.Net.Uri[] uris = new Android.Net.Uri[count]; for (int i = 0; i < count; i++) { uris[i] = clipData.GetItemAt(i).Uri; string Source = GetPathToImage(uris[i]); string Des = System.IO.Path.Combine(SaveImageDir, new Java.IO.File(Source).Name); if (new Java.IO.File(Des).Exists()) { this.copy(new Java.IO.File(Source), new Java.IO.File(Des)); } this.copy(new Java.IO.File(Source), new Java.IO.File(Des)); } } } } //如果使用者白目不選檔案 if (resultCode == Result.Canceled) { //NotThink } //如果選擇的是 PDf if (resultCode == Result.Ok && requestCode == PdfPick) { string ForPdfDir = Android.OS.Environment.ExternalStorageDirectory.AbsolutePath; var uris = new List <Android.Net.Uri>(); if (data.Data != null) { uris.Add(data.Data); } else { for (int i = 0; i < data.ClipData.ItemCount; i++) { uris.Add(data.ClipData.GetItemAt(i).Uri); } } foreach (var fileUri in uris) { string Source = getPathFromUri(this, fileUri); Java.IO.File FileSou = new Java.IO.File(Source); string Des = System.IO.Path.Combine(ForPdfDir, "DownLoad/InterView/Slides/" + FileSou.Name); Java.IO.File FileDes = new Java.IO.File(Des); this.copy(FileSou, FileDes); this.WritePngToDir(Source, Des); } gridviewShow.Adapter = new GridViewAdapter(this, queryFilesName(FindPngInPath(AppDir + "/Slides", visibleThings))); } }
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); //If we are calling multiple image selection, enter into here and return photos and their filepaths. if (requestCode == OPENGALLERYCODE && resultCode == Result.Ok) { List <string> images = new List <string>(); List <Stream> imgStream = new List <Stream>(); if (data != null) { //Separate all photos and get the path from them all individually. ClipData clipData = data.ClipData; if (clipData != null) { for (int i = 0; i < clipData.ItemCount; i++) { ClipData.Item item = clipData.GetItemAt(i); Android.Net.Uri uri = item.Uri; var path = GetRealPathFromURI(uri); // TESTING RESIZE !! byte[] file = this.Resize(uri, path, 60, 60); //byte[] file = File.ReadAllBytes(path); System.IO.Stream strm = new MemoryStream(file); if (path != null) { imgStream.Add(strm); images.Add(path); } } } else { Android.Net.Uri uri = data.Data; var path = GetRealPathFromURI(uri); // TESTING RESIZE !! byte[] file = this.Resize(uri, path, 60, 60); // byte[] file = File.ReadAllBytes(path); System.IO.Stream strm = new MemoryStream(file); if (path != null) { imgStream.Add(strm); images.Add(path); } } //Send our images to the carousel view. MessagingCenter.Send(imgStream, "ImagesStreamAndroid"); // New test MessagingCenter.Send(images, "ImagesSelectedAndroid"); } } }
public override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data) { base.OnActivityResult(requestCode, resultCode, data); if ((resultCode == Result.Ok) && (data != null)) { switch (requestCode) { case 0: images.Add((Bitmap)data.Extras.Get("data")); break; case 1: List <Bitmap> bitmapy = new List <Bitmap>(); ClipData clipData = data.ClipData; try { if (clipData.ItemCount > 0) { for (int i = 0; i < clipData.ItemCount; i++) { Android.Net.Uri imageUri = clipData.GetItemAt(i).Uri; try { bitmapy.Add(MediaStore.Images.Media.GetBitmap(this.Activity.ContentResolver, imageUri)); } catch { } } if (bitmapy.Count + images.Count > 5) { Toast.MakeText(this.Activity, GetString(Resource.String.tooManyPhotosSelected), ToastLength.Short).Show(); } int j = 0; while (images.Count < 5 && j < bitmapy.Count) { images.Add(bitmapy[j]); j++; } } } catch { try { images.Add(MediaStore.Images.Media.GetBitmap(this.Activity.ContentResolver, data.Data)); } catch { } } break; case 2: images[photoi] = (Bitmap)data.Extras.Get("data"); break; case 3: try { images[photoi] = MediaStore.Images.Media.GetBitmap(this.Activity.ContentResolver, data.Data); } catch { } break; } Refresh(); } }