如何使用 bytearray 从服务器端下载图像到 android?
How to download an image from server side to android using bytearray?
我的 Android 同事想要从 Java Server
端代码发送图像,我尝试使用 byte-array-output stream
,这是将图像发送到 [=13= 的最佳方式]. android代码应该如何接收byte-array
。
嗨,parth,欢迎来到 Whosebug。
有多种方法可以完成此任务,您要使用哪种方式取决于您的要求。
最常见的方式是使用 Socket(这取决于要求)。
看到这个 example。
此示例包括客户端和服务器端编码。
希望对您有所帮助。
我已经通过字节数组完成了这些事情。这是我的代码供您参考:
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是服务器的响应。
我的 Android 同事想要从 Java Server
端代码发送图像,我尝试使用 byte-array-output stream
,这是将图像发送到 [=13= 的最佳方式]. android代码应该如何接收byte-array
。
嗨,parth,欢迎来到 Whosebug。 有多种方法可以完成此任务,您要使用哪种方式取决于您的要求。 最常见的方式是使用 Socket(这取决于要求)。
看到这个 example。 此示例包括客户端和服务器端编码。
希望对您有所帮助。
我已经通过字节数组完成了这些事情。这是我的代码供您参考:
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是服务器的响应。