[Doit! 안드로이드 앱 프로그래밍] Mission3
참고서적: Doit 안드로이드 앱 프로그래밍
두개의 이미지뷰에 이미지 번갈아 보여주기 예제입니다.
- 화면을 위와 아래 두 영역으로 나누고 그 영역에 각각 이미지뷰를 배치합니다.
- 각각의 이미지뷰는 스크롤이 생길 수 있도록 합니다.
- 상단의 이미지뷰에 하나의 이미지를 보이도록 합니다.
- 두개의 이미지뷰 사이에 버튼을 하나 만들고 그 버튼을 누르면 상단의 이미지가 하단으로 옮겨져 보이고 다시 누르면 상단으로 다시 옮겨지는 기능을 추가합니다.
이문제를 해결하는데 한시간이 소요됬다.. 금방금방 할것같앗지만 꽤나 디테일하게 접근하려다보니 잘안됬었다.
먼저, 스크롤뷰2개, 이미지뷰 2개와 버튼1개 가 필요하다. 부모컨테이너는 LinearLayout으로 구성했다.
위의 그림처럼 LinearLayout 내에 스크롤뷰2개와 버튼1개를 구성한후에 각각의 스크롤뷰 안에 이미지뷰를 넣어줬다.
그림을 전환한다는 의미는 버튼클릭의 이벤트에따라 이미지뷰 각각에 하나는보이고, 하나는보이지 않게 구성해야 한다.
그렇게하기위해서 첫번째 시도로는, 이미지뷰1과 2에 각각 그림을 넣어준뒤 버튼클릭 이벤트에따라 SetVisibility 속성값에 visible과 invisible을 넣어서 했었다.
하지만 문제를 다시읽어보니, 상단의이미지가 하단으로 옮겨지고, 하단의이미지가 상단으로 옮겨져야 한다.
그렇게하기위해서는 이미지가 전환됨에따라 이미지가 사라져야 하는데 visibility 속성은 실제로는 있지만 보여질것인가 를 결정하는 속성이니.. 디테일하게 접근하기위해서는 없어져야되니까 setimagedrawable 메소드의 파라미터에 0을넣어 아에 이미지를 없앴다.
에서 버튼을 누르는 동작을 하게되면
로 바뀌게된다.
이렇게하고나니 또 생각이 드는 의문점이 .. 이문제에 정확한 의도는 모르겠으나, 그림을 전환시키면서 그 그림자체에 행해지는 동작과 모든상태를 그대로 옮길수는 없을까? 라는 생각이들었다.
스크롤뷰로 구성하라고 했기때문에, 스크롤을 내린 동작이라는게 있을텐데, 내가햇던방식으로 문제를풀게되면 스크롤을 내렷던건 상관없이 그저 그림만 없앳다가 넣엇다가 하는 방식밖에 되지않는다… 이 동작자체를 save해서 넘겨주는 방법은 없을까?…
너무 산으로 가는거같아 일단 보류… 다음에 구글링을해서든지 찾아봐야겠다.
댓글남기기