마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

onSizeChanged() 호출

0 추천

위와 같이 activity_main에서 버튼 2개(원본/거꾸로)를 놓고, 

Matrix를 적용해서 뒤집혔다, 돌아왔다 하는 기능을 구현하고 싶은데, 생각처럼 잘 안됩니다.

 

지금 하고있는 방법은) 

1. MainActivity에서 버튼에 따라 mode값 (ORIGINAL/MATRIX)을 지정하고, 

2. MyView(그래픽 class)로 construcor로 mode값을 넘겨주고

3. setContextView()를 다시 call해주는 방식인데, 

 

MyView쪽에서 

onSizeChanged()가 호출되면 

mode로 지정해준 값이 계속 '초기화'가 되서, 거꾸로 Matrix를 따로 적용하는 함수가 call되지 않고 있습니다. 

 

해결할수 있는 방법이나, 

다른 구현방법이 있을까요?

-------------------------------------------------------------------------------------------------------

uuni (770 포인트) 님이 2016년 5월 5일 질문
uuni님이 2016년 5월 5일 수정

1개의 답변

0 추천
onSizeChanged() 와 해당 변수값의 초기화하고는 상관이 없어 보입니다.

생성자 함수에서 두번째 인자로 넘겨받은 값을 전역변수에 저장해놓고 사용하실텐데

해당 값이 초기화 된다면 왜 초기화가 되는지 분석을 해보셔야 할듯 합니다.

 

참고로, 위의 기능을 구현하는데 해당 방식은 굉장히 맞지 않는 방식 같습니다.

그냥 MyView 함수에 setModeChange() 라는 함수를 하나 만들어 해당 함수를 호출하면

이미지를 다시 그리는 방법이 더 좋은 방법으로 보여집니다.
바램 (19,650 포인트) 님이 2016년 5월 5일 답변
감사합니다.
말씀해주신대로 코드를 조금 바꿔봤는데, 여전히 문제가 있습니다.
지금 상황에서 문제는

invalidate(); 를 했음에도, onDraw()가 call되지 않는 겁니다.
...