SD 카드에 이미지를 저장하는 데 문제가 있습니다. sd 카드에서 파일을 볼 수 있지만 파일이 비어 있습니다 (크기 0). 나는 전화 메모리에 저장하려고했는데 제대로 작동합니다. 여기 내 코드가있다.SD 카드에 파일을 저장하고 파일 크기를 씁니다.
Imagewritter {
public static boolean writeAsJPG(Context context, Bitmap bitmap,
String filename) {
filename = filename + ".jpg";
File path = Environment.getExternalStorageDirectory();
File f = new File(path, filename);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(f);
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
fos = context.openFileOutput(filename, Context.MODE_WORLD_READABLE);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.d(TAG, "file not found");
return false;
}
bitmap.compress(CompressFormat.JPEG, quality, fos);
try {
fos.flush();
fos.close();
} catch (IOException e) {
Log.d(TAG, "error closing");
e.printStackTrace();
}
}
여기서 비트 맵의 출처는 코드입니다.
DrawingView = (drawing) findViewById(R.id.drawing_view);
drawingBitmap = (Bitmap) DrawingView.getBitmap();
String idName = timeStampText;
//save Image as JPG
ImageWritter.writeAsJPG(getApplicationContext(), drawingBitmap, idName);
실제로 비트 맵 변수가 설정된 코드를 게시하십시오. 또한 새로운 FileOutputStream을 할당하지 마십시오. context.openFileOutput 호출로 인해 전체 코드 블록이 낭비됩니다. 그 덕분에 –
. 비트 맵의 위치가 – madz
인 코드를 추가하겠습니다. 내 코드가 중복되었습니다. 나는 context.openFileOutput을 제거했다. 고마워요. – madz