android 擷取相簿圖片及路徑

來源:互聯網
上載者:User

手頭上正在做Android平台的一個項目,需要用到相簿的圖片,就順便記錄下,方便自己以後回顧。好了,廢話就到此為止了。以下給出的是部分代碼,可以根據自己的需要進行修改~

 

首先是相簿圖片的擷取:

 

private final String IMAGE_TYPE = "image/*";

private final int IMAGE_CODE = 0;   //這裡的IMAGE_CODE是自己任意定義的

 

//使用intent調用系統提供的相簿功能,使用startActivityForResult是為了擷取使用者選擇的圖片

 

Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT);

getAlbum.setType(IMAGE_TYPE);

startActivityForResult(getAlbum, IMAGE_CODE);

 

//重寫onActivityResult以獲得你需要的資訊

 

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data){

    if (resultCode != RESULT_OK) {        //此處的 RESULT_OK 是系統自訂得一個常量

        Log.e(TAG,"ActivityResult resultCode error");

        return;

    }

 

    Bitmap bm = null;

 

    //外界的程式訪問ContentProvider所提供資料 可以通過ContentResolver介面

    ContentResolver resolver = getContentResolver();

 

    //此處的用於判斷接收的Activity是不是你想要的那個

    if (requestCode == IMAGE_CODE) {

        try {

            Uri originalUri = data.getData();        //獲得圖片的uri 

 

            bm = MediaStore.Images.Media.getBitmap(resolver, originalUri);        //顯得到bitmap圖片

 

這裡開始的第二部分,擷取圖片的路徑:

 

            String[] proj = {MediaStore.Images.Media.DATA};

 

            //好像是android多媒體資料庫的封裝介面,具體的看Android文檔

            Cursor cursor = managedQuery(originalUri, proj, null, null, null); 

            //按我個人理解 這個是獲得使用者選擇的圖片的索引值

            int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

            //將游標移至開頭 ,這個很重要,不小心很容易引起越界

            cursor.moveToFirst();

            //最後根據索引值擷取圖片路徑

            String path = cursor.getString(column_index);

        }catch (IOException e) {

            Log.e(TAG,e.toString()); 

        }

    }

}

原文地址:http://blog.csdn.net/hugh114/article/details/5765332

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.