2011-11-28 14 views
26

मैं एंड्रॉइड से SHARE INTENT का उपयोग कर फेसबुक, ट्विटर आदि के साथ छवियों को साझा करने की कोशिश कर रहा हूं।मैं बिटमैप को उरी में कैसे बदल सकता हूं?

मैं शेयर आशय करने के लिए एक छवि को भेजने के लिए कोड मिला, लेकिन इस कोड बिटमैप के URI की जरूरत है: fullSizeImageUri

यह पूरा कोड है:

private void startShareMediaActivity(Bitmap image) { 
    boolean isVideo=false; 
    String mimeType="bmp"; 
    Uri fullSizeImageUri=null; 
    Intent intent = new Intent(); 
    intent.setAction(Intent.ACTION_SEND); 
    intent.setType(mimeType); 
    intent.putExtra(Intent.EXTRA_STREAM, fullSizeImageUri); 
    try { 
     startActivity(Intent.createChooser(intent, (isVideo ? "video" : "image"))); 
    } catch (android.content.ActivityNotFoundException ex) { } 
} 

कृपया, किसी ने मेरी मदद कर सकते एक बिट्टमैप को उरी में बदलने के लिए?

धन्यवाद

उत्तर

17
String FILENAME = "image.png"; 
String PATH = "/mnt/sdcard/"+ FILENAME; 
File f = new File(PATH); 
Uri yourUri = Uri.fromFile(f); 
+1

पार्स हमेशा एक स्ट्रिंग को फ़ाइल के रूप में तर्क के रूप में लेते हैं। अगली बार कार्यों के बारे में विवरण पढ़ें या शायद उनका परीक्षण करें। – Arkde

+2

क्षमा करें Arkde छोटे भ्रम किसी भी तरह से –

+4

को याद दिलाने के लिए धन्यवाद क्या हम बिटमैप – Prasad

0

वैसे आप एक uri में एक बिटमैप फ़ाइल Transforma नहीं कर सकते। यूआरआई here

यूआरआई एक समान संसाधन पहचानकर्ता के बारे में और पढ़ें। लेकिन आप इस

Absolute: http://android.com/yourImage.bmp 
Relative: yourImage.bmp 
+0

तो कैसे मेरी जरूरतों को प्राप्त कर सकते में छवि गुणवत्ता? यह नामुमकिन है? – NullPointerException

+0

मुझे लगता है कि आपको इसे देखने के लिए अपने रास्ते पर पुनर्विचार करना होगा ... फेसबुक और ट्विटर एपीआईएस को यह देखने के लिए जांचें कि आप उस छवि साझाकरण को कैसे प्राप्त कर सकते हैं – Arkde

50

यहाँ की तरह एक पूर्ण या संबंधित यूआरआई में बिटमैप जगह कॉलिन के ब्लॉग जो सरल विधि का सुझाव उरी Click here

public Uri getImageUri(Context inContext, Bitmap inImage) { 
    ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
    inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
    String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null); 
    return Uri.parse(path); 
} 
+5

सहेजने के बिना उरी नहीं प्राप्त कर सकते हैं लेकिन छवि को कैसे हटाया जाए ?? यह फ़ोल्डर में छवियों के बहुत सारे बनाता है .. – Noman

+4

किटकैट में काम नहीं कर रहा है और – DroidLearner

+0

से ऊपर एंड्रॉइड पहनने पर काम नहीं कर रहा है – Lunatikul

0

ऊपर समाधान के लिए बिटमैप कन्वर्ट करने के लिए कर सकते हैं मीडिया स्टोर का उपयोग करता है और छवियों को मुख्य छवि फ़ोल्डर में संग्रहीत करता है जो इसे गैलरी/फोटो व्यूअर के माध्यम से देखने योग्य बनाता है। यह समाधान इसे आपके ऐप्स डेटा में अस्थायी फ़ाइल के रूप में संग्रहीत करेगा। इस उदाहरण में इमेज एक बिटमैप है और शीर्षक छवि फ़ाइल के नाम के लिए एक स्ट्रिंग है।

File tempDir= Environment.getExternalStorageDirectory(); 
    tempDir=new File(tempDir.getAbsolutePath()+"/.temp/"); 
    tempDir.mkdir(); 
    File tempFile = File.createTempFile(title, ".jpg", tempDir); 
    ByteArrayOutputStream bytes = new ByteArrayOutputStream(); 
    inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes); 
    byte[] bitmapData = bytes.toByteArray(); 

    //write the bytes in file 
    FileOutputStream fos = new FileOutputStream(tempFile); 
    fos.write(bitmapData); 
    fos.flush(); 
    fos.close(); 
    return Uri.fromFile(tempFile); 
0
String picName = "pic.jpg"; 
     String PATH = Environment.getExternalStorageDirectory().getPath()+ picName; 
     File f = new File(PATH); 
     Uri yourUri = Uri.fromFile(f); 
-1

पास बिटमैप और (PNG, JPG, आदि ...) की तरह compressFormat और प्रतिशत

public Uri getImageUri(Bitmap src, Bitmap.CompressFormat format, int quality) { 
    ByteArrayOutputStream os = new ByteArrayOutputStream(); 
    src.compress(format, quality, os); 

    String path = MediaStore.Images.Media.insertImage(getContentResolver(), src, "title", null); 
    return Uri.parse(path); 
} 
+0

पथ शून्य हो सकता है, इसलिए आपका कोड Uri.parse (पथ) –

+0

पर क्रैश हो जाएगा, आप जांचते हैं कि पथ शून्य है या नहीं। और यूरी में जाने के बाद –

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