I tried this code, and every time it force closes. The Uri object
gives me the Uri, but I can't see why it's failing... Please help!!!
Uri photoUri = intent.getData();
Cursor cursor = getContentResolver().query(photoUri, new String[]
{MediaStore.Images.ImageColumns.DATA}, null, null, null);
String absoluteFilePath = cursor.getString(0);
On Mar 26, 8:57 am, beachy <[email protected]> wrote:
> cheers, did not know that about Drawables will use Bitmaps then.
>
> Thanks,
> Greg.
>
> On Mar 25, 3:23 pm, Streets Of Boston <[email protected]> wrote:
>
> > This Uri is the logical (not physical) path used by theimagecontent
> > provider.
> > If you want to get the physical path to the actual file on the SD-
> > card, query this Uri:
>
> > Cursor cursor = query(photoUri, new String[]
> > {MediaStore.Images.ImageColumns.DATA}, null, null, null);
> > String absoluteFilePath = cursor.getString(0);
>
> > Now, absoluteFilePath is the physical path to yourimage, which you
> > can use in Drawable.createFromPath
>
> > Question: Why don't you create a Bitmap instead?
>
> > ...
> > InputStream is = getContentResolver().openInputStream(photoUri);
> > Bitmap bm = BitmapFactory.decodeStream(is);
> > ...
> > is.close();
>
> > I ask this, because it is safer to cache Bitmaps instead of Drawables.
> > If you cache Drawables, you run the risk of memory leaks. Drawables
> > have handles to your activity and when your activity gets destroyed
> > while your Drawables are still cached, your activiy will never be
> > garbage collected --> memory leak.
> > Bitmaps don't have this problem. They are basically byte-arrays with
> > some behavior :).
>
> > On Mar 25, 3:15 am, beachy <[email protected]> wrote:
>
> > > In some code I call this;
> > > Intent photoPickerIntent = new
> > > Intent
> > > (Intent.ACTION_PICK);
> > > photoPickerIntent.setType("image/*");
> > >
> > > startActivityForResult(photoPickerIntent,
> > > 1);
>
> > > then implement this method....
>
> > > protected void onActivityResult(int requestCode, int resultCode,
> > > Intent intent)
> > > {
> > > super.onActivityResult(requestCode, resultCode, intent);
>
> > > if (resultCode == RESULT_OK)
> > > {
> > > Uri photoUri = intent.getData();
> > > Log.d(TAG, "should be adding a photo");
> > > if (photoUri != null)
> > > {
>
> > > Log.d(TAG, "photo uri is not blank");
> > > // do something with the content Uri
> > > //TODO figure out why this does not work!!
> > > Log.d(TAG, "the photo URI is " +
> > > photoUri.getPath());
> > > Drawable thePic = Drawable.createFromPath
> > > (photoUri.getPath());
> > > //thePic is Null
> > > if(thePic != null){
> > > Log.d(TAG, "the pic has loaded");
> > > myRecipe.addPic(thePic);
> > > ((RecipeAdapter)myListView.getAdapter
> > > ()).notifyDataSetChanged();
>
> > > }
> > > }
> > > }
> > > }
>
> > > trying to get aimageand load it in to a drawable object. The Uri
> > > that is returned seems logical
>
> > > 03-25 08:12:58.554: DEBUG/ConvertScaleScreen(174): the photo URI is /
> > > external/images/media/1
>
> > > but when i start up a shell with adb the file location or even the
> > > root drive does not exitst, am I missing something here? should the be
> > > a symbolic link on the file system?
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---