2013-05-21 3 views
0

После нажатия на захват Button изображение должно сохранять в sdcard, оно снимает снимок, но не сохраняет изображение с этим, . Тогда как я могу поместить кнопку захвата где захочу? У меня есть наложение в Imageview, и мне нужно наложить кнопку над наложением.Android-изображение Не сохранять на SDCard

+0

у вас есть разрешение WRITE_EXTERNAL_STORAGE?/sdcard/images выходит на вашу SD-карту? – Blackbelt

+0

да, у меня это в моем проявлении. – Aaloka

ответ

1

Используйте этот один, чтобы сохранить изображение в SD-карта

 public void save(Bitmap image) 
        { 
      File sdcard = Environment.getExternalStorageDirectory(); 
      File f = new File (sdcard, imagename); 
      FileOutputStream out=null; 
      try { 
       out = new FileOutputStream(f); 
      } catch (FileNotFoundException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      image.compress(Bitmap.CompressFormat.PNG, 90, out); 
      try { 
       out.flush(); 
       out.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
} 
1

INT картина обратного вызова, использовать как этот

jpegCallback = new PictureCallback() { 
     public void onPictureTaken(byte[] data, Camera camera) { 
      camera.startPreview(); 
      FileOutputStream outStream = null; 
      try { 
       outStream = new FileOutputStream(
         "/mnt/sdcard/myphoto.jpg"); 
       outStream.write(data); 
       outStream.close(); 
       Log.d("Log", "onPictureTaken - wrote bytes: " + data.length); 
      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } finally { 

      } 
      Log.d("Log", "onPictureTaken - jpeg"); 
     } 
    }; 
0
stream=new ByteArrayOutputStream(); 
temBitmap=Bitmap.createBitmap(bmp); 
temBitmap.compress(Bitmap.CompressFormat.JPEG,100, stream); 
path+=String.format(
       getString(R.string._sdcard_d_jpg), 
       System.currentTimeMillis()); 
    outStream = new FileOutputStream(path+extension); // <9> 
    outStream.write(stream.toByteArray()); 
    outStream.close(); 

изменить выше фрагмент кода таким образом:

path+=String.format(
      getString(R.string._sdcard_d_jpg), 
      System.currentTimeMillis()); 
    outStream = new FileOutputStream(path+extension); // <9> 
    temBitmap=Bitmap.createBitmap(bmp); 
    temBitmap.compress(Bitmap.CompressFormat.JPEG,100, outStream); 
    outStream.close();  
    temBitmap.recycle() 
+0

, тогда как можно написать sdcard без этого outStream.write (stream.toByteArray()); ? – Aaloka

+0

зачем вам нужно? Bitmap.compresss делает запись уже – Blackbelt

+0

Не работает. :( – Aaloka

Смежные вопросы