2010-12-22 184 views
1

這是我在做什麼:Android:從圖像ID獲取字節[

在onActivityResult,我得到的數據在一個意圖。

Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
startActivityForResult(intent, TAKE_PICTURE); 

這段代碼獲得的圖像ID:

data.getData().getLastPathSegment(); 

現在我想用這個形象的ID來獲得的byte []的imageData,所以我可以上傳圖片的服務器上。

我該怎麼辦?

回答

1
Uri selectedImageUri = data.getData(); 

String[] projection = { MediaStore.Images.Media.DATA }; 
Cursor cursor = managedQuery(selectedImageUri, projection, null, null, null); 
cursor.moveToFirst(); 
selectedImagePath = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA)); 
cursor.close(); 

try 
{ 
    File myFile = new File(selectedImagePath); 
    int filelenghth=(int)myFile.length(); 
    byte [] mybytearray = new byte [filelenghth]; 
    BufferedInputStream bis1 = new BufferedInputStream(new FileInputStream(myFile)); 

    bis1.read(mybytearray,0,mybytearray.length); 

    dos.write(mybytearray,0,mybytearray.length); // write the array to the data output stream 
                // or whatever else you want to do with it 
    finish(); 
} 
catch(Exception e) 
{ 
    e.printStackTrace(); 
} 
+0

由於阿布舍克巴克。這對我很有幫助。 – 2010-12-22 13:09:24

0

data.getData()會返回給你一個圖像的URI。 (檢查數據!=空第一!)

然後你只需要執行一個http post到你的服務器。

查看的HTTP POST碼對SO以下參考:Sending images using Http Post