2011-03-07 16 views
12

पर सहेजने से बचें मैं तस्वीर को कैप्चर करने के लिए कैमरा गतिविधि का उपयोग कर रहा हूं। मैं इसे मीडियास्टोर.EXTRA_OUTPUT अतिरिक्त पैरामीटर के साथ कॉल करता हूं। छवि प्रदान किए गए पथ पर सही ढंग से सहेजी गई है, इसे गैलरी फ़ोल्डर में भी सहेजा गया है, इसलिए मैं "गैलरी" एप्लिकेशन में छवि देख सकता हूं - क्या मैं इससे बच सकता हूं?कैमरा इरादा/गतिविधि - गैलरी

... 
File file = new File(Environment.getExternalStorageDirectory(), "Test.jpg"); 
iImageOutputUri = Uri.fromFile(file); 

// Start camera intent to capture image 
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_OUTPUT, iImageOutputUri); 
startActivityForResult(intent, CAPTURE_IMAGE); 
... 

धन्यवाद

+0

+1। मैं हमेशा सोच रहा था कि कैमरे का उपयोग करने वाले मेरे सभी एप्लिकेशन गैलरी में चित्रों को भी सहेज रहे हैं। – Chris

+3

मैं एक निष्कर्ष पर आया कि आप वास्तव में भविष्यवाणी नहीं कर सकते कि कैमरे की गतिविधि वास्तव में क्या करती है। यह आंशिक रूप से इस पर निर्भर करता है कि कैसे अनुकूलित एंड्रॉइड संस्करण है (इस प्रकार एक कस्टम कैमरा गतिविधि, आदि)। इसे हल करने का एकमात्र तरीका अपनी कैमरा गतिविधि लिखना है। मेरे लिए यह सभी quirks के आसपास काम करने और किसी भी हैक का उपयोग न करने का सबसे आसान तरीका था। – Audrius

+3

हाय ऑडियस, मैं आपसे सहमत हूं - यह डिवाइस पर निर्भर करता है - कुछ फोनों पर यह छवि को गैलरी (जैसे एलजी-पी 500) पर भी सहेज रहा है, कुछ नहीं (उदा। सैमसंग नेक्सस एस)। कैमरा गतिविधि के कई पहलू बहुत खराब हैं, यह पैरामीटर निर्दिष्ट करने की अनुमति नहीं देता है, जैसे न्यूनतम/अधिकतम छवि गुणवत्ता, जो पूरी तरह से उपयोगकर्ता तक है, यह जेपीईजी को बफर में वापस नहीं कर सकता है, उदाहरण के लिए आगे प्रसंस्करण, आदि। इसका उपयोग करना बहुत आसान है, लेकिन जितना अच्छा हो उतना अच्छा नहीं है। अगली परियोजना पर मैं अपना खुद का कैमरा हैंडलिंग करूँगा ... अलविदा – STeN

उत्तर

-3

मैं नहीं मानता कि आप इस से बच सकते हैं। गैलरी एप्लिकेशन छवियों के लिए आपके एसडी कार्ड के माध्यम से देखता है और उन्हें स्वचालित रूप से प्रदर्शित करता है।

+2

यह बात नहीं है। मुद्दा यह है कि छवि वास्तव में दो बार सहेजी जाती है: एक बार डिफ़ॉल्ट स्थान पर EXTRA_OUTPUT प्लस के रूप में प्रदान किए गए स्थान पर। ओपी यही टालना चाहता है – matteo

0

गैर-छवि एक्सटेंशन के साथ अपनी छवियों को सहेजने के बारे में कैसे? Michael.jpg/png इत्यादि के बजाय michael.photo की तरह कुछ। इस तरह गैलरी ऐप उन्हें नहीं ले पाएगा और मैंने उदाहरण के लिए ऐसे कई ऐप्स Keepsafe को देखा है।

2

बस कोड निम्नलिखित getExternalFilesDir() की

File file = new File(getExternalFilesDir(Environment.DIRECTORY_PICTURES), "Test.jpg"); 

विवरण के साथ अपने कोड

File file = new File(Environment.getExternalStorageDirectory(), "Test.jpg"); 

बदल देते हैं: प्राथमिक बाह्य फाइल सिस्टम पर निर्देशिका का निरपेक्ष पथ रिटर्न (वह Environment.getExternalStorageDirectory()) पर कहीं भी है जहां आवेदक आयन लगातार फाइलें रख सकता है। ये फ़ाइलें अनुप्रयोगों के लिए आंतरिक हैं, और आम तौर पर उपयोगकर्ता को मीडिया के रूप में दिखाई नहीं देती हैं। अच्छे प्रश्न के लिए

संबंधित मुद्दे