在Android中显示图像并与其他应用共享

时间:2017-02-26 12:49:25

标签: android bitmapsource

在我的应用中,我必须从网址下载一张图片。我必须在我的应用程序中预览该图像,我必须使用显式意图共享图像。我面临两个问题如下:

  1. 我不想将图像存储在外部存储设备中。那么除了共享偏好之外还有什么其他选择? (由于共享首选项对图像进行解码和编码非常慢)。缓存是好的吗?如果它很好我怎么能实现它?

  2. 位图无法通过意图明确发送到其他应用。(我在谈论我的应用中的共享图像功能)。那么其他可能的选择是什么呢?

1 个答案:

答案 0 :(得分:1)

  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();
    
  2. 您需要本地保存的文件路径网址才能在各种应用中共享。

    Intent intent = new Intent(Intent.ACTION_SEND); intent.setData(Uri.parse(文件路径)); startActivity(意图);