Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从图库发送图像_Android - Fatal编程技术网

Android 从图库发送图像

Android 从图库发送图像,android,Android,我们正在android 2.3.3中开发一个聊天应用程序。我们希望使用套接字编程将图片从一个模拟器发送到另一个模拟器。我们是android新手,不知道如何做到这一点。这方面的任何帮助都将是可观的。 提前感谢使用动作拾取从多媒体资料中获取图像,如下所示: Intent i = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); st

我们正在android 2.3.3中开发一个聊天应用程序。我们希望使用套接字编程将图片从一个模拟器发送到另一个模拟器。我们是android新手,不知道如何做到这一点。这方面的任何帮助都将是可观的。
提前感谢

使用动作拾取从多媒体资料中获取图像,如下所示:

Intent i = new Intent(Intent.ACTION_PICK,
               android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, ACTIVITY_SELECT_IMAGE); 
这将允许您启动gallery应用程序来选择照片: 在OnActivityResult中,您将收到照片的uri:

处理此uri以从此uri获取字节数组:

protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { 
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

    switch(requestCode) { 
    case REQ_CODE_PICK_IMAGE:
        if(resultCode == RESULT_OK){  
            Uri selectedImage = imageReturnedIntent.getData();
            String[] filePathColumn = {MediaStore.Images.Media.DATA};

            Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
            String filePath = cursor.getString(columnIndex);
            cursor.close();


            Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);

            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
            byte[] byteArray = stream.toByteArray();

            //Open a Socket Connection to send photo

            Socket socket=new Socket("ip", portNo);
            OutputStream os=socket.getOutputStream();
            os.write(byteArray);
            os.flush();

            //Read response by getting input stream from socket.

        }
    }
}

搜索可能会发现许多套接字实现的示例代码: