android 利用contentprovider查詢圖庫里的圖片並用imageview顯示


  1、在圖庫的contentprovider里存儲的是image、video、audio的信息的存儲,如:它們的格式、文件的路徑等,因此外面利用getcontentprovider對數據庫進行查詢這些信息可以獲得文件在sd卡的存儲地址從而可以獲取圖片,一個簡單的demo:

public class MainActivity extends PermissionActivity {

    ImageView imageview ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageview = (ImageView) findViewById(R.id.image);

        Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
        ContentResolver mContentResolver = MainActivity.this.getContentResolver();

        //只查詢jpeg和png的圖片
        Cursor mCursor = mContentResolver.query(mImageUri, null,
                MediaStore.Images.Media.MIME_TYPE + "=? or "
                        + MediaStore.Images.Media.MIME_TYPE + "=?",
                new String[] { "image/jpeg", "image/png" }, MediaStore.Images.Media.DATE_MODIFIED);

        if(mCursor == null){
            return;
        }
  //只顯示第一張圖片
        mCursor.moveToNext();
        String path = mCursor.getString(mCursor
                    .getColumnIndex(MediaStore.Images.Media.DATA));

        Bitmap bitmap =BitmapFactory.decodeFile(path);
        imageview.setImageBitmap(bitmap);


}

}

  圖庫的數據庫只是一個索引,它只存儲了圖片、視頻、音頻的索引即位置,並沒有真的存儲,因此在訪問的時候得得到路徑然后加以利用。

MediaStore.Images.Media.DATA 圖片
MediaStore.Videos.Media.DATA 視頻
MediaStore.Audios.Media.DATA 音頻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM