如何使用bytearray从服务器端下载图像到android?

时间:2015-06-30 04:36:10

标签: android image bytearray android-image

我的Android同事希望从Java Server端代码发送图片,我尝试使用byte-array-output stream,这是将图片发送到Android client的最佳方式。 android代码应该如何接收byte-array

2 个答案:

答案 0 :(得分:0)

您好,欢迎来到stackoverflow。 有多种方法可以执行此任务,您希望使用哪种方式,取决于您的要求。 最常见的方法是使用Socket(它取决于要求)。

example。 此示例包括客户端和服务器端编码。

希望这有帮助。

答案 1 :(得分:0)

我是通过字节数组完成的。这是我的代码供您参考:

String base64String = (String)sp.toString();
byte[] mediaData = Base64.decode(base64String, 0);                              write(notesList.get(position).getContent(), mediaData);
                                        File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),
                                                notesList.get(position).getContent());
                                        Uri path = Uri.fromFile(file);
                                        if(notesList.get(position).getContent().contains(".pdf"))
                                        {
                                            Intent pdfOpenintent = new Intent(Intent.ACTION_VIEW);
                                            pdfOpenintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                                            pdfOpenintent.setDataAndType(path, "application/pdf");
                                            try {
                                                context.startActivity(pdfOpenintent);
                                            } catch (ActivityNotFoundException e) {
                                            }
                                        }
                                        else if(notesList.get(position).getContent().contains(".jpg") || notesList.get(position).getContent().contains(".jpeg") || notesList.get(position).getContent().contains(".png"))
                                        {
                                            Intent intent = new Intent();
                                            intent.setAction(Intent.ACTION_VIEW);
                                            intent.setDataAndType(Uri.parse("file://" + path), "image/*");
                                            context.startActivity(intent);
                                        }
                                        else if(notesList.get(position).getContent().contains(".xls"))
                                        {
                                            PackageManager packageManager = context.getPackageManager();
                                            Intent intent = new Intent(Intent.ACTION_VIEW);
                                            intent.setType("application/*");
                                            List list = packageManager.queryIntentActivities(intent,
                                                PackageManager.MATCH_DEFAULT_ONLY);


                                            if (list.size() > 0) {
                                                intent.setDataAndType(path, "application/*");
                                                context.startActivity(intent);
                                            }
                                        }

这里,sp是来自服务器的响应。