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 <beachy.g...@gmail.com> wrote:
> cheers, did not know that about Drawables will use Bitmaps then.
>
> Thanks,
> Greg.
>
> On Mar 25, 3:23 pm, Streets Of Boston <flyingdutc...@gmail.com> 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 <beachy.g...@gmail.com> 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 android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to