2011-12-30 15 views
0

私が抱えている問題を理解するために少し助けが必要です。私は電話上のすべての画像を照会してGridViewに表示するアプリケーションを持っています。私はこれを行い、リストに値を記入することができました。問題は、リストにアクセスして、クエリのアイテムから情報を取得しているときです。カーソルが項目がMediaStoreを使用してGridViewにすべての画像を表示する方法

/mnt/sdcard/images/media/file.jpg

のファイルパスを持っていますが、パスが唯一

/SDカード/画像/メディア/ファイルであることを私に言っています.jpg

これは私がリストを作成するために使用したコードです。

 // Set up an array of the Thumbnail Image ID column we want 
     String[] projection = {MediaStore.Images.Thumbnails._ID}; 
     // Create the cursor pointing to the SDCard 
     //returns the cursor that checks the sdcard for Thumbnail id's 
       cursor = managedQuery( 
       MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, 
       projection, 
       // Which columns to return 
       null, 
       // Return all rows 
       null, 
       MediaStore.Images.Thumbnails.IMAGE_ID); 
       // Get the column index of the Thumbnails Image ID 
       columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Thumbnails._ID); 

項目は、実際に表示するのですが、私は別のカーソルからそれらを取得するときにパスが間違っています。 ?????? 私は少し失われています。

エミュレータと物理デバイスで使用しました。同じ問題。 パスがNULLでプログラムがクラッシュしたというエラーが表示されます。

MediaStoreにEXTERNAL_CONTENT_URIを照会し、必要な正しいパスを与える方法がありますか? また、私は自分の物理的な電話でそれを使用したときに、画像と私のSDカード上の最初のディレクトリにクエリが停止し、より多くのディレクトリをクエリする方法?

答えて

3

MediaStore.Images.Media.EXTERNAL_CONTENT_URIを試しましたか?

また、​​は非推奨です。getContentResolver().query()を使用してください。

関連する問題