Hi Wally,
Actually you can do something useful with the intent you're getting back from
the activity result.
protected override void OnActivityResult(int requestCode, Result resultCode,
Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
if (requestCode == TakePictureRequestCode && resultCode == Result.Ok)
{
var dataUri = data.ToURI();
var imageView = FindViewById<ImageView>(Resource.Id.selected_picture);
imageView.SetImageURI(Android.Net.Uri.Parse(dataUri));
}
}
This is basically the thing to get a picture back from the camera :)
Met vriendelijke groet,
Willem Meints
Ontwikkelaar PDC
Van: [email protected]
[mailto:[email protected]] Namens Wally McClure
Verzonden: Tuesday, August 02, 2011 3:58 PM
Aan: [email protected]
Onderwerp: [mono-android] getting a pic from the camera
I'm trying to start the camera application and get an image back. I think I
should be able to get the image back in the OnActivityResult method.
Unfortunately, I am missing something as I don't seem to get anything back.
All of what look to be the interesting pieces of the data Intent seem to be
null. I suspect that the problems are on my end. I get the "data" object
back. Unfortunately, I don't get a file uri that I can open as an image. I
don't get anything back. Any suggestions on how to get the image back when I
take a picture?
Wally
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
namespace Graphics
{
[Activity(Label = "Take Pictures Activity")]
public class takepictures : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Create your application here
SetContentView(Resource.Layout.takepictures);
Button btnCTP = FindViewById<Button>(Resource.Id.btnCloseTakePics);
btnCTP.Click += new EventHandler(btnCTP_Click_Close);
saveFullImage();
}
void btnCTP_Click_Close(object sender, EventArgs e)
{
this.Finish();
}
private static int TAKE_PICTURE = 1;
private Uri outputFileUri;
private void getThumbailPicture() {
Intent intent = new
Intent(Android.Provider.MediaStore.ActionImageCapture);
StartActivityForResult(intent, TAKE_PICTURE);
}
private void saveFullImage() {
Intent intent = new
Intent(Android.Provider.MediaStore.ActionImageCapture);
string file =
System.IO.Path.Combine(Android.OS.Environment.DirectoryDcim.ToString(),
"test.jpg");
var outputFileUri = Android.Net.Uri.Parse(file);
intent.PutExtra(Android.Provider.MediaStore.ExtraOutput,
outputFileUri);
StartActivityForResult(intent, TAKE_PICTURE);
}
protected override void OnActivityResult(int requestCode, Result
resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
if (requestCode == TAKE_PICTURE)
{
Uri imageUri = null;
// Check if the result includes a thumbnail Bitmap
if (data != null)
{
if (data.HasExtra("data"))
{
var thumbnail = data.GetParcelableArrayExtra("data");
// TODO Do something with the thumbnail
}
}
else
{
var outputFileUri =
data.GetParcelableArrayExtra("outputFileuri");
// TODO Do something with the full image stored
// in outputFileUri
}
}
}
}
}
_______________________________________________
Monodroid mailing list
[email protected]
UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid