2012-08-07 46 views
18

Tôi có một nút, và tôi muốn khi tôi nhấp vào hình ảnh được lưu vào thẻ sd (hoặc bộ nhớ trong, như trong htc một x chúng tôi không có bộ nhớ ngoài giống như một thẻ sd)Tiết kiệm Android Bitmap vào thẻ SD

đây là mã của tôi:

  sd.setOnClickListener(new View.OnClickListener() { 

      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       MpClick.start(); 
       File myDir=new File("/sdcard/Saved_images"); 
       myDir.mkdirs(); 
       Random generator = new Random(); 
       int n = 10000; 
       n = generator.nextInt(n); 
       String fname = "Image-"+ n +".jpg"; 
       File file = new File (myDir, fname); 
       if (file.exists()) file.delete(); 
       try { 
         FileOutputStream out = new FileOutputStream(file); 
         bitMapToShare.compress(Bitmap.CompressFormat.JPEG, 600, out); 
         out.flush(); 
         out.close(); 

       } catch (Exception e) { 
         e.printStackTrace(); 
       } 
      } 
     }); 

và làm thế nào để tôi thực hiện một thông báo xuất hiện ở trong đó nó được viết "hình ảnh của bạn đã được lưu." như một cảnh báo nhưng đối với 2seconds và sau đó biến mất

+1

Làm thế nào về Toast.makeText (this, R.string.your_message, Toast.LENGTH_SHORT) .show(); –

+0

Được rồi, cảm ơn =) –

Trả lời

82

thử này

private void SaveImage(Bitmap finalBitmap) { 

    String root = Environment.getExternalStorageDirectory().toString(); 
    File myDir = new File(root + "/saved_images");  
    myDir.mkdirs(); 
    Random generator = new Random(); 
    int n = 10000; 
    n = generator.nextInt(n); 
    String fname = "Image-"+ n +".jpg"; 
    File file = new File (myDir, fname); 
    if (file.exists()) file.delete(); 
    try { 
     FileOutputStream out = new FileOutputStream(file); 
     finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out); 
     out.flush(); 
     out.close(); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

và thêm này trong manifest

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

Nhìn vào câu trả lời này Android saving file to external storage

EDIT: Bằng cách sử dụng dòng này bạn có thể có thể nhìn thấy hình ảnh được lưu trong giao diện thư viện.

sendBroadcast(new Intent(
Intent.ACTION_MEDIA_MOUNTED, 
     Uri.parse("file://" + Environment.getExternalStorageDirectory()))); 
+0

Hoạt động hoàn hảo, chỉ có một vấn đề rằng album "saved_images" không xuất hiện trong thư viện nhưng sử dụng trình quản lý tệp tôi có thể xem nó đã tạo một thư mục "saved_images" và bên trong hình ảnh tôi đã lưu .. làm cách nào để tạo, lưu nó trong thư viện –

+0

@ AhmedAl-ekrii bạn có thể thử nghiệm trên trình giả lập này và trình mô phỏng cập nhật chậm. Sử dụng trình kích hoạt phương tiện trước khi vào thư viện. Bạn sẽ tìm thấy thư mục được chỉ định ở đó. – Numair

+0

không, tôi đang sử dụng điện thoại HTC One X .. ý của bạn là gì khi sử dụng trình kích hoạt phương tiện? (Tôi là một starter, xin lỗi) –

2

Sử dụng nhắn Toast

như

Toast.makeText(Your_class_name.this, 
        "Your image is saved to this folder", Toast.LENGTH_LONG) 
        .show(); 
+0

cảm ơn, nó đã hoạt động =) –

+0

Rất vui được giúp :) – Numair

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