2011-01-23 39 views

Trả lời

9

Sau đó, bạn phải lưu Bitmap vào thẻ SDCard, sau đó đính kèm nó vào email (tôi đoán, bạn know how to do so).

Tại sao cần lưu nó vào thẻ SDCard? Đó là vì ứng dụng email sẽ phải đọc tệp mà nó sẽ được đính kèm; do đó, bạn phải chuyển đường dẫn và tên tệp cho ứng dụng email. Giống như bất kỳ ứng dụng nào khác, ứng dụng email chỉ có thể truy cập các tệp được lưu trữ trong thư mục riêng của riêng nó hoặc Thẻ SDCard.

+0

Thanx để biết thông tin. Có cách nào chúng ta có thể gửi trực tiếp đối tượng bitmap chứ không phải bằng cách lưu nó vào sdcard? Tôi không muốn các ứng dụng khác hoặc cho người dùng truy cập hình ảnh. – mobiledev

+0

Bạn có thể xóa hình ảnh sau khi email đã được gửi. – Cristian

+0

Làm cách nào để biết liệu email có được gửi hay không? Không có phương thức startActivityForResult để khởi động ACTION_SEND. Ngoài ra, sẽ có thể gửi tệp đính kèm dưới dạng html. – mobiledev

4
/* Return Drawable Object from Specified imageUrl In Web 

@imageUrl : image Url in Web 

*/ 

try { 
/// Getting image from Web 
    InputStream is = (InputStream) new URL(imageUrl).getContent(); 
    // storing image from stream 
    drawable = Drawable.createFromStream(is, "srcName"); 
    is.close(); 
    // converting drawable object to Bitmap to store in content providers of Media 
    Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap(); 
    // Store image in Devise database to send image to mail 
    String path = Images.Media.insertImage(getContentResolver(), bitmap,"title", null); 
    Uri screenshotUri = Uri.parse(path); 
    final Intent emailIntent1 = new Intent( android.content.Intent.ACTION_SEND); 
    emailIntent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    emailIntent1.putExtra(Intent.EXTRA_STREAM, screenshotUri); 
    emailIntent1.setType("image/png"); 
    startActivity(Intent.createChooser(emailIntent1, "Send email using")); 

} 
catch(Exception e) { } 
+0

hoạt động như sự quyến rũ! Cảm ơn – LeoSarena

Các vấn đề liên quan