매트릭스의 위치좌표를 변경하고, 매트릭스의 회전각을 조정하고, 매트릭스의 크기를 조정하는 작업을 동시에 했다.
이미지가 얼마나 커지는 지를 체크 할 필요가 있었다. 이미지의 배율을 구해서 변화폭을 관찰해야 하는 부분을 구현해야 했다.
하지만 0도일때는 잘 구해지던 것이 90에서는 안 구해지고 180에서는 구해지는데 270도에는 안구해졌다.
float[] matrixValues = new float[9];
matrix.getValues(matrixValues);
matrixValues[Matrix.MSCALE_X];
위와 같은 코드를 통해서 가로의 크기를 구해줄려고 했는데 ,,,,, 0도에서는 잘 구해지다가 90도에서는 0을 뱉어냈다 ㅜㅜ 270도에서도 0을 반환했다.
아 .... 수학적인 문제인가를 생각해서 계속 구글링을 하면서 찾아봤는데 좋은 답이 안 나왔다.
도저히 안되서 matrixValues배열은 3*3 행렬이므로 for문으로 값들을 돌려봤다.
그런데 .... 나의 심각한 오판이 있었다. matrixValues[0]의 값이 0도 일때는 스케일의 배율값이었는데
90도 일때는 스케일의 배율값이 아니었다. ㅡㅡ
각도가 바뀔 때마다 각 속성이 뒤바뀌었다.
정확한 이유는 쫌 더 공부를 해봐야 하겠지만 ....
어쨋든 정리하자면
for문을 돌려보면서 0도 90도 180도 270도 일 때의 스케일의 배율을 나타내는 값을 찾아내서
if문 4개에 넣어주었다.
'Android' 카테고리의 다른 글
매트릭스 postTranslate, postRotate (0) | 2015.04.01 |
---|---|
이미지뷰에서 bitmap을 추출하는 방법 (0) | 2015.04.01 |
안드로이드 이미지를 가져와서 원래의 흰 배경을 제거하는 방법 (0) | 2015.04.01 |
매트릭스를 통한 이미지뷰 조정 (0) | 2015.04.01 |
Matrix에 대해서 (0) | 2015.04.01 |