먼저 카톡의 사진 편집기능은 두 가지가 있습니다.
하나는 이미지의 4개의 변에 축이 생기고 그걸 조절해서 크롭할 영역을 설정하는것과
이미지 회전 기능입니다. 이게 가로 세로만 변하는게 아니라 시계방향인지 반시계방향인지
한쪽 방향으로 계속 돌아서 4개의 결과를 보여줍니다.
무튼 이렇게 정하고 적용을 누르면 편집한 이미지로 전송을 하는방식입니다...
좀 보니까 사진 찍은 후 onActivityResult에서 데이타를 받은 후 데이타를 다시
카톡에서 제작한 Activity로 이미지파일과함께 실행하여 크롭과 회전을 직접 구현한것 같습니다..
제가 검색을 통해 구한 방법으로는....
일단 기본제공하는 크롭 기능으로 아래의 인텐트를 이용해 할 수 있습니다....
Intent intent = new Intent("com.android.camera.action.CROP");
그리고 회전은 Matrix 클래스를 사용하여 돌려주면 될것 같아요...
근데 문제는 이 두개의 기능을 하나의 엑티비티에 넣을 수가 없어요 ㅠ_ㅠ
크롭만 하려면 그냥 기본제공 크롭 UI 사용하면 되는데....
회전만 하려면 매트릭스 클래스 사용하여 그냥 돌려주면 되는데....
두개 다 하려면... 회전을 구현한 엑티비티에 크롭을 제가 직접 구현을 해야하는데..
이것도 잘 모르겠구요 ㅠ_ㅠ 어떻게 하면 좋을까요..???
다시 읽어보니 animation을 쓴다고 큰 장점이 있는것도 아니군요. 매트릭스로도 가능할것같구 bitmap중에 메쏘드를 이용해도 가능할 것 같네요
한가지 예로는 bundle로 받은 crop된 image를 비트맵으로 만드시고 rotate(애니메이션을 이용하시던 행렬을 곱하시던 여러 방법을 선택 가능합니다.)로 90 180 270등을 돌려준 이미지들을 다시 bitmap에 저장하면 되겠죠. 첫 댓글에 에니메이션을 달았던 이유는 setFillAfter = true로 놓고 각각 animation listener를 달아서 bitmap저장이 용이하고, 회전시 자연스러운 모양새가 날 것 같았는데, 성능상이나 다른 문제가 있을 것 같네요.
Matrix를 사용하여 회전하는데는 성공했는데요~
문제가 크롭 엑티비티에서 하단에 버튼을 두어 회전 기능도 넣고 싶은데...
Intent intent = new Intent("com.android.camera.action.CROP");
위 인텐트로 기본제공하는 크롭기능을 사용할 시엔 커스텀이 불가능해서....
아무리 찾아봐도 크롭기능을 직접 구현한 소스는 찾을 수 없네요 ㅠ_ㅠ
이거 오픈소스라도 구해서 직접 다 구현해야 하는건가요....?
아니면 크롭 버튼을 두어서 크롭하고 싶으면 크롭엑티비티로 보내주게끔 depth를 하나 더 둬야 하나요...




animation클래스를 이용하면 더 쉽게 구현이 가능하지 않을까요?