스크레치 아트 프로그램을 제작중인데요 기능상 거의 구현이 끝나가는데 아무리 해도 화일저장하기가 안되네요
옵션눌러서 저장하기 누르면 아무동작도 하지 않습니다. 여기저기 검색도 많이 해보고 소스도 많이 바꿔봤는데
저장하기 누르면 그냥 먹통이네요. 심지어 토스트도 동작하지 않습니다.
뭐가 잘못된걸까요?
뷰는 이미지뷰를 상속받고 배경은 그라디언트로 덮어지는 검정색은 이미지로 덮어서 그걸 지워가는 방식입니다.
manifest 내용
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
==================================================================================================
저장하기 내용 (Activity 안에 위치)
sv = (ScratchView)findViewById(R.id.scratchView);
private void savePicture(){
sv.buildDrawingCache();
Bitmap saveView = sv.getDrawingCache();
File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
if(!dir.exists())
dir.mkdirs();
FileOutputStream fos;
try {
fos = new FileOutputStream(Environment.getExternalStorageDirectory().toString() + "/capture.jpeg");
saveView.compress(Bitmap.CompressFormat.JPEG, 100, fos);
Toast.makeText(getApplicationContext(), "저장완료", Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
==================================================================================================
Layout xml 화일
<RelativeLayout xmlns:android="
http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/relative"
>
<LinearLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.arthur.leo.scratchartbook.ScratchView
android:id="@+id/scratchView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="1"
>
</com.arthur.leo.scratchartbook.ScratchView>
</LinearLayout>
</RelativeLayout>