2012-08-07 29 views
18

मेरे पास एक बटन है, और मैं चाहता हूं कि जब मैं उस पर क्लिक करता हूं तो छवि एसडी कार्ड में सहेजी जाती है (या आंतरिक स्टोरेज, जैसा एचटीसी एक एक्स में है, हमारे पास बाहरी स्टोरेज नहीं है एक एसडी कार्ड की तरह)एसडी कार्ड में एंड्रॉइड सेविंग बिटमैप

यह मेरा कोड है:

  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(); 
       } 
      } 
     }); 

और कैसे मैं एक संदेश प्रकट होता है उस में यह लिखा है कर सकता हूँ "आपकी छवि बचा लिया गया था।" एक चेतावनी की तरह है, लेकिन 2seconds के लिए और उसके बाद गायब हो जाता है

+1

टोस्ट.मेकटेक्स्ट (यह, R.string.your_message, Toast.LENGTH_SHORT) .show(); –

+0

ठीक है, धन्यवाद =) –

उत्तर

82

इस

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(); 
    } 
} 

कोशिश करते हैं और प्रकट

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
में इस ऐड इस लाइन आप गैलरी दृश्य में सहेजे गए चित्रों को देखने में सक्षम कर सकते हैं का उपयोग करके: इस उत्तर Android saving file to external storage

संपादित पर

देखो।

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

यह पूरी तरह से काम कर रहा है, केवल एक ही समस्या कि एलबम "saved_images" गैलरी में प्रकट नहीं होता है, लेकिन एक फ़ाइल प्रबंधक मैं यह कर सकते हैं का उपयोग कर इसे एक फ़ोल्डर "saved_images" बना दिया गया है और इसके अंदर मैंने छवि को सेव किया है .. मैं इसे कैसे बना सकता हूं, गैलरी में इसे सहेज सकता हूं –

+0

@ अहमदल-एक्रिया आप एमुलेटर पर इसका परीक्षण कर सकते हैं, और एमुलेटर धीरे-धीरे अपडेट कर सकते हैं। गैलरी में प्रवेश करने से पहले मीडिया ट्रिगर का प्रयोग करें। आपको वहां निर्दिष्ट फ़ोल्डर मिल जाएगा। – Numair

+0

नहीं, मैं अपने फोन का उपयोग कर रहा हूं एचटीसी वन एक्स .. मीडिया ट्रिगर का उपयोग करके आपका क्या मतलब है? (मैं एक स्टार्टर हूँ, खेद) –

2

उपयोग टोस्ट संदेश

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

धन्यवाद, यह काम किया =) –

+0

खुशी है कि मदद की जा करने के लिए :) – Numair