2012-03-21 14 views
15

मैं सीख रहा हूं कि एक तस्वीर कैसे लेनी है और फ़ाइल में अपना रास्ता सहेजना है।getoutputmediafileuri विधि सुलभ नहीं है?

android developers website पर ट्यूटोरियल प्रदान करता है, विधि

getoutputmediafileuri() प्रयोग किया जाता है के अनुसार, हालांकि, जब मुझे लगता है कि विधि का उपयोग करने की कोशिश की, मैंने पाया है कि यह सुलभ या अपरिभाषित

नहीं है, मेरा मतलब ग्रहण इस रेखांकित करता है रेडलाइन के साथ विधि। मुझे नहीं पता

इस त्रुटि को ठीक करने के लिए कैसे करें।

कोड

public class SaveCameraImageDemoActivity extends Activity { 
/** Called when the activity is first created. */ 

Button btn01; 
private Uri fileURI; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    btn01 = (Button) findViewById(R.id.btn01); 
    btn01.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      Intent intenet = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      fileURI = getoutputmediafileuri(); 
      //intenet.putExtra("output", uri.getPath()); 
      startActivityForResult(intenet,0); 
     } 
    }); 
} 

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    } 
} 

उत्तर

21

कृपया नीचे एंड्रॉयड में कोई इनबिल्ट विधि getoutputmediafileuri() नहीं है। यह एक कस्टम विधि है जो किसी व्यक्ति को विशेष निर्देशिका में कैप्चर की गई छवियों को संग्रहीत करने के लिए फ़ाइल यूआरआई प्राप्त करने के लिए लिखती है। आपको इसके लिए तर्क परिभाषित करना और रखना है। इसके बजाय कि उपयोग की इस कोड,

संपादित करें:

btn01.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     Intent imageIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
     File imagesFolder = new File(Environment.getExternalStorageDirectory(), "MyImages"); 
     imagesFolder.mkdirs(); // <---- 
     File image = new File(imagesFolder, "image_001.jpg"); 
     Uri uriSavedImage = Uri.fromFile(image); 
     imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage); 
     startActivityForResult(imageIntent,0); 
    } 
}); 

अब इस अपने कैमरे MyImages image_001.jpg नाम के साथ sdcard में निर्देशिका में छवियों पर कब्जा कर लिया स्टोर करेगा।

+0

यह भी वीडियो कैप्चर के लिए काम करते हैं .... और दस्तावेजों में वे इसे उल्लेख –

+0

कैसे एंड्रॉयड डिफ़ॉल्ट छवि भंडारण पथ को खोजने के लिए नहीं है? –

2

अब the document कोड जोड़ा गया है। बस अपने Class के अंत में पेस्ट करें, यह मेरे लिए अच्छा काम करता है। कोड नीचे के रूप में देखें।

public static final int MEDIA_TYPE_IMAGE = 1; 
public static final int MEDIA_TYPE_VIDEO = 2; 

/** Create a file Uri for saving an image or video */ 
private static Uri getOutputMediaFileUri(int type){ 
    return Uri.fromFile(getOutputMediaFile(type)); 
} 

/** Create a File for saving an image or video */ 
private static File getOutputMediaFile(int type){ 
    // To be safe, you should check that the SDCard is mounted 
    // using Environment.getExternalStorageState() before doing this. 

    File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
      Environment.DIRECTORY_PICTURES), "MyCameraApp"); 
    // This location works best if you want the created images to be shared 
    // between applications and persist after your app has been uninstalled. 

    // Create the storage directory if it does not exist 
    if (! mediaStorageDir.exists()){ 
     if (! mediaStorageDir.mkdirs()){ 
      Log.d("MyCameraApp", "failed to create directory"); 
      return null; 
     } 
    } 

    // Create a media file name 
    String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date()); 
    File mediaFile; 
    if (type == MEDIA_TYPE_IMAGE){ 
     mediaFile = new File(mediaStorageDir.getPath() + File.separator + 
    "IMG_"+ timeStamp + ".jpg"); 
    } else if(type == MEDIA_TYPE_VIDEO) { 
     mediaFile = new File(mediaStorageDir.getPath() + File.separator + 
     "VID_"+ timeStamp + ".mp4"); 
    } else { 
     return null; 
    } 

    return mediaFile; 
} 
+0

क्या आप मुझे एक उदाहरण दिखा सकते हैं कि उपरोक्त कोड को इरादे में कैसे जोड़ा जाए? – Moudiz

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