Zakodowałem robienie zdjęć i zapisywanie ich w pamięci zewnętrznej. Działa to dobrze na moim tablecie z kartą SD. Mam jednak problemy z telefonem, który nie obsługuje karty SD. Każdy może mi pomóc w zapisywaniu kodów pamięć wewnętrzna. Dzięki!Zapisywanie zdjęcia zrobionego w pamięci wewnętrznej?
((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) ;
}
samo pytanie zostało zadane 30 minut temu http://stackoverflow.com/ques/15662258/how-to-save-a-bitmap-on-internal-storage –
@ user2205173 Sprawdź ten http://connectcoders.blogspot.com/ –