|
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
if ((requestCode == ImageHelper.PickImageId) && (resultCode == Result.Ok) && (data != null))
{
if (data.ClipData.ItemCount > 0)
{
for (int i = 1; i <= data.ClipData.ItemCount- 1; i++)
{
ClipData.Item item = data.ClipData.GetItemAt(i);
ImageHelper.uri[i] = item.Uri;
}
}
}
base.OnActivityResult(requestCode, resultCode, data);
ImageHelper.returnedFromImageActivity = true;
}
public Task<bool> StartImageChooser()
{
Intent = new Intent();
Intent.SetType("image/*");
Intent.SetAction(Intent.ActionGetContent);
Intent.PutExtra(Intent.ExtraAllowMultiple, true);
(ImageHelper.context as MainActivity).StartActivityForResult(Intent.CreateChooser(Intent, "Select Picture"), ImageHelper.PickImageId);
return Task.Run(() => CheckIfImageChooserActivityIsExited());
}
|
|
ImageMessage ImageMessage;
private void createMessage(Stream stream)
{
ImageMessage = new ImageMessage();
ImageMessage.Aspect = Aspect.Fill;
byte[] imageBytes = ReadFully(stream);
ImageMessage.Source = Xamarin.Forms.ImageSource.FromStream(() => new MemoryStream(imageBytes));
ImageMessage.Author = this.ViewModel.CurrentUser;
this.ViewModel.Messages.Add(ImageMessage);
}
public static byte[] ReadFully(Stream input)
{
byte[] buffer = new byte[16 * 1024];
using (MemoryStream ms = new MemoryStream())
{
int read;
while ((read = input.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
return ms.ToArray();
}
}
|