Android開發從系統圖庫中選擇一張圖片的方法


剛開始學習OpenCv4Android編程,做了個小demo。

就是一個主界面上添加一個ImageView 兩個Button控件。

一個Button用來從系統相冊選擇一張照片;

另一個Button是用來完成灰度化的功能;

在開發過程中遇到Android從系統圖庫中選擇一張圖片的問題,查閱了一些資料我將自己的辦法貼在下面。

 

步驟1:編寫重定向到圖片庫的代碼

  我們需要寫一些Java代碼來處理按鈕的點擊事件,而重定向到圖片庫的代碼如下:

Intent i = new Intent(  
Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);  
   
startActivityForResult(i, RESULT_LOAD_IMAGE);  

注意:這里的RESULT_LOAD_IMAGE是一個整形常量需要傳到startActivityForResult()方法。

步驟2:獲取選中的圖片

一旦選擇了一張圖片,onActivityResult()方法將會被調用。我們需要處理這個方法得到的數據,代碼如下:

 1 @Override  
 2 protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
 3     super.onActivityResult(requestCode, resultCode, data);  
 4   
 5     if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {  
 6         Uri selectedImage = data.getData();  
 7         String[] filePathColumn = { MediaStore.Images.Media.DATA };  
 8   
 9         Cursor cursor = getContentResolver().query(selectedImage,  
10                 filePathColumn, null, null, null);  
11         cursor.moveToFirst();  
12   13         int columnIndex = cursor.getColumnIndex(filePathColumn[0]);  
14         String picturePath = cursor.getString(columnIndex);  
15         cursor.close();  
16    }  

注意:onActivityResult()方法只有當圖片被選中后才會調用。在這個方法中,我們需要檢查requestCode是否是我們之前傳給startActivityForResult()方法的RESULT_LOAD_IMAGE。

程序截圖:

 

 


免責聲明!

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



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