在我的应用中,我必须从网址下载一张图片。我必须在我的应用程序中预览该图像,我必须使用显式意图共享图像。我面临两个问题如下:
我不想将图像存储在外部存储设备中。那么除了共享偏好之外还有什么其他选择? (由于共享首选项对图像进行解码和编码非常慢)。缓存是好的吗?如果它很好我怎么能实现它?
位图无法通过意图明确发送到其他应用。(我在谈论我的应用中的共享图像功能)。那么其他可能的选择是什么呢?
答案 0 :(得分:1)
下载图片并将其存储在缓存目录中
URL url = new URL("YOUR_URL");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream(); Bitmap myBitmap = BitmapFactory.decodeStream(input);
String data1 = String.valueOf(String.format("/sdcard/dirname/%d.jpg",System.currentTimeMillis())); FileOutputStream stream = new FileOutputStream(data1);
ByteArrayOutputStream outstream = new ByteArrayOutputStream(); myBitmap.compress(Bitmap.CompressFormat.JPEG, 85, outstream);
byte[] byteArray = outstream.toByteArray(); stream.write(byteArray);
stream.close();
您需要本地保存的文件路径网址才能在各种应用中共享。
Intent intent = new Intent(Intent.ACTION_SEND); intent.setData(Uri.parse(文件路径)); startActivity(意图);