2013-07-15 11 views
23

android.content.CursorLoaderクラスを使用して、2つのCursorオブジェクトを作成して、自分のアプリのデバイスのユーザーに保存されているメディアにアクセスしています。私は、ユーザーに、Android Galleryアプリからの注文を保存する、保存された画像とビデオのグリッドビューを提供したいと思います。同じカーソルで注文した画像と動画にアクセスする

現在、私はCursorを使って画像にアクセスし、1つはビデオにアクセスしています。このアプローチでは、すべての画像がすべての動画の前に(つまり、2つの別々のグループに)配置されます。同じCursorから画像と動画の両方にアクセスする方法はありますか?そうでない場合は、デバイス上のこれらのメディアにアクセスするためのよりよい方法がありますか?ビデオ

CursorLoader cursorLoader = new CursorLoader(
    mContext, 
    MediaStore.Images.Media.EXTERNAL_CONTENT_URI, 
    IMAGE_PROJECTION, 
    null, 
    null, 
    MediaStore.Images.Media._ID + " desc" 
); 
    mImageCursor = cursorLoader.loadInBackground(); 

そして:イメージのため

は参考のために、ここで私が使用していたコードである

CursorLoader cursorLoader = new CursorLoader(
    mContext, 
    MediaStore.Video.Media.EXTERNAL_CONTENT_URI, 
    VIDEO_PROJECTION, 
    null, 
    null, 
    MediaStore.Video.Media._ID + " desc" 
); 
    mVideoCursor = cursorLoader.loadInBackground(); 

答えて

62
研究をたくさんした後

とソースコードで遊んで、私はついに、Androidファイルシステムについてもう少し詳しく知っています。あなたの最終的なコードを共有するための

// Get relevant columns for use later. 
String[] projection = { 
    MediaStore.Files.FileColumns._ID, 
    MediaStore.Files.FileColumns.DATA, 
    MediaStore.Files.FileColumns.DATE_ADDED, 
    MediaStore.Files.FileColumns.MEDIA_TYPE, 
    MediaStore.Files.FileColumns.MIME_TYPE, 
    MediaStore.Files.FileColumns.TITLE 
}; 

// Return only video and image metadata. 
String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "=" 
     + MediaStore.Files.FileColumns.MEDIA_TYPE_IMAGE 
     + " OR " 
     + MediaStore.Files.FileColumns.MEDIA_TYPE + "=" 
     + MediaStore.Files.FileColumns.MEDIA_TYPE_VIDEO; 

Uri queryUri = MediaStore.Files.getContentUri("external"); 

CursorLoader cursorLoader = new CursorLoader(
    this, 
    queryUri, 
    projection, 
    selection, 
    null, // Selection args (none). 
    MediaStore.Files.FileColumns.DATE_ADDED + " DESC" // Sort order. 
); 

Cursor cursor = cursorLoader.loadInBackground(); 
+4

感謝;:ImagesVideoの両方についての情報にアクセスすることができ、単一のCursorを取得するには、私は次のように使用しましたこれは本当に私にとっては役に立ちました! – scientiffic

+0

問題があります。サムネイルではなくメインの画像/データにアクセスしています。 MediaStore.Imagesを照会しています。すべてのカーソル項目のサムネイルが重すぎます。何か案は? – Umair

+0

動画に再生アイコンを表示するにはどうすればよいですか? –

関連する問題