2013-03-27 13 views
7

Fotoğrafı çekip harici depolama biriminde sakladım. Tablet bilgisayarımda bir sd kart ile iyi çalışıyor.Ancak, telefonumda sd kart desteği olmayan bir sorunla karşılaşıyorum.Kendimde saklamak için kod yazmama yardımcı olan herkes var dahili depolama. Teşekkürler!Dahili Depolamada yakalanan resmi kaydetme?

((Button) findViewById(R.id.btnTaken)) 
      .setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
          takeImage();        
       } 
       }); 



protected void takeImage() { 
    Log.i(TAG,"onClick event"); 
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss"); 
     String currentDateandTime = sdf.format(new Date()); 
     String fileName = Environment.getExternalStorageDirectory().getAbsolutePath() + 
           "/Image_" + currentDateandTime + ".jpg"; 


     mCamera.takePicture(fileName); 
     Toast.makeText(this, fileName + " saved", Toast.LENGTH_SHORT).show(); 


} 
public void takePicture(final String fileName) { 
    Log.i(TAG, "Tacking picture"); 
    PictureCallback callback = new PictureCallback() { 

     private String mPictureFileName = fileName; 

     @Override 
     public void onPictureTaken(byte[] data, Camera camera) { 
      Log.i(TAG, "Saving a bitmap to file"); 
      Bitmap picture = BitmapFactory.decodeByteArray(data, 0, data.length); 
      try { 
       FileOutputStream out = new FileOutputStream(mPictureFileName); 
       picture.compress(Bitmap.CompressFormat.JPEG, 90, out); 
       picture.recycle(); 
       mCamera.startPreview(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    }; 

    Camera.ShutterCallback shutter = new Camera.ShutterCallback() { 
     public void onShutter() { 
     Log.e(getClass().getSimpleName(), "SHUTTER CALLBACK"); 
     } 
     }; 
     Camera.PictureCallback raw = new Camera.PictureCallback() { 
      public void onPictureTaken(byte[] data, Camera c) { 
       Log.e(getClass().getSimpleName(), "PICTURE CALLBACK RAW: " + data); 
       mCamera.startPreview(); 
      } 
      }; 
    mCamera.takePicture(shutter, raw, callback) ; 



} 
+0

dosyasını Android Manifest.xml içine dahili depolama izni eklemek gerekir tions/15662258/nasıl yapılır-kaydetme-a-bitmap-on-iç depolama –

+0

@ user2205173 Bu http://connectcoders.blogspot.com/ adresine bir bakın. –

cevap

-4

Bu name..Which iyi

ve

çalışma it..Its denemek ..Ple FileOutputStream out = new FileOutputStream(new File(getFilesDir()+File.separator+"MyFile.jpg")); olan İç Dosya Yolu vermelidir Dış dosya yolu name..You Çok Simple..Instead olduğunu

Bir şey daha, aynı soru 30 dakika http://stackoverflow.com/ques önce istendi

<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/> 
+2

Bu izin mevcut değil ve bir OutputStream bir dosya adı değil . – clemp6r

+0

Ayrıca çıkış akımı hakkında da bilgim var. Bu temel bir şey yaar. Bu 'out' değişkeninden verileri yazabilirsiniz. Verileri OutPutStream'de yazmaktan haberin var mı ??? –

İlgili konular