현재 구조가 아래와 같습니다.
<리니어레이아웃>
<저장버튼>
<프레임레이아웃>
<이미지뷰><이미지뷰>
</프레임레이아웃>
</리니어레이아웃>
여기서 저장 버튼을통해 프레임 레이아웃과 자식 뷰들을 이미지로 만드려고 합니다.
현재 갤러리의 사진을 이미지뷰에 각각 셋팅하였고 "저장" 버튼을 통해 하나의 이미지로 만들려고하는데.
프레임레이아웃을 비트맵으로 저장하니 갤러리에서 불러온 사진들은 나타나지 않습니다..
혹시 왜 그런지 알 수 있을까요?ㅠㅠ
저장버튼 누를시 동작
public void 저장버튼클릭(View v) {
프레임레이아웃.setDrawingCacheEnabled(true);
프레임레이아웃.buildDrawingCache();
//이미지 캡쳐
Bitmap saveBitmap = 프레임레이아웃.getDrawingCache();
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd_hhmmss");
String namePostfix = format.format(new Date());
//sd_card 절대경로를 구함.
String sdPath = Environment.getExternalStorageDirectory().getAbsolutePath();
String basePath = sdPath+File.separator+APP_BASE+File.separator;
File dir = new File(basePath);
if(!dir.exists()) {
dir.mkdirs();
}
File saveFile = new File(basePath+File.seperator+"foru_"+namePostfix+".jpg");
FileOutputStream output = null;
try {
output = new FileOutputStream(saveFile);
saveBitmap.compress(CompressFormat.JPEG, 70, output);
Toast.makeText(getApplicationContext(), "저장되었습니다.", Toast.LENGTH_SHORT).show();
} catch(IOException e) {
Toast.makeText(getApplicationContext(), "저장 실패", Toast.LENGTH_SHORT).show();
} finally {
if(output!=null) { try{output.close();}catch(Exception e){e.printStackTrace();}}
}
}