2011-06-15 5 views
0

제 경우에는 RelativeLayout에 많은 EditText 상자와 줄이 포함되어 있습니다. 지금 당장 필요한 것은 줌 작업을하는 것입니다. 나는 (일)에 많은 봤 거든 나는 어떻게 대답을 찾지 못했습니다.핀치 확대/축소를 RelativeLayout에서 작동시키는 방법? - 안드로이드

  1. 사실 '핀치 줌'만 ImageView, MapView and WebView 지원된다는 점이다 : 나는 그래서 몇 가지 질문으로 시작하는 경우

    첫째는 우리 모두에게 가장 쉬운 것입니까?

  2. RelativeLayout에서 확대/축소 작업을 수행 할 수 있습니까? (버튼을 만질 때마다 버튼과 여러 크기 값 및/또는 리팩토링 전체 "보기"를 사용하는 것이 가장 좋습니다.)
  3. 위의 것보다 더 쉽게 작업 할 수 있다면 좋겠다. 어떻게해야하는지 들어야합니다.

편집 : 그리고 애니메이션을 사용하려고 꽤 잘 작동 규모의 어떤 종류가 있었다, 그러나 단지 치명적인 문제는 EditTextBoxe의 감동 경계 이동도 확장 .. 아니면하지 않았다, 그래서 그들은했다 원래 위치와 크기. 이 제안이 있습니까?

답변

1

RelativelyLayout은 전혀 확대되지 않습니다. 또는 스크롤하십시오. 너는 틀린 장소를보고있다. 이 작업을 수행하는 컨테이너에 뷰 계층을 배치해야합니다. 확대/축소를 수행하는 경우 컨테이너가이를 통과하는 그리기 및 터치 이벤트에 배율 인수를 적용해야하므로 까다로운 작업입니다.

+0

그럼 내가 사용해야 할 제안이 있습니까? 어떤 컨테이너에 핀치 확대가 있고 editText 상자를 올바르게 확대/축소 할 수 있습니까? – lehtu

+1

핀치 줌을 구현하는 플랫폼에는 표준 컨테이너가 없습니다. 직접 구현해야합니다. 일반적으로이 작업을 수행하는 응용 프로그램 (브라우저,지도, 갤러리)은 모두 자신의 사용자 지정보기를 사용하여 모든 도면을 처리하므로 핀치 확대/축소가 해당보기의 사용자 지정 렌더링 및 이벤트 처리와 밀접하게 관련되어 있습니다. Canvas에 2 차원 변환을 적용하는 ViewGroup 컨테이너에서 일반적으로 수행 할 수있는 작업과 그 결과가 얼마나 만족 스러운지는 알 수 없지만 MotionEvents는 해당 자식으로 전달됩니다. – hackbod

0

아직 구현하지 않은 경우 두 가지 구현에 대해 http://code.google.com/p/android-pinch/source/browse/#svn%2Ftrunk%2Fsrc%2Fcom%2Fnikkoaiello%2Fmobile%2Fandroid%253Fstate%253Dclosed을보아야합니다. 나는 자신이 맞다는 느낌을 가지며 그 중 3 개는 핀치 줌 메타포에 대한 기본 지원이있는 유일한보기입니다.

일반적인 문제 인 것처럼 보이는 애니메이션에 대한 지식이 없으면 경계가 확장되지 않는 한 : 애니메이션을 재정의하고 http://developer.android.com/reference/android/view/animation/Animation.html#willChangeBounds%28%29을 설정하여 어떤 식 으로든 진정한 도움을 얻으시겠습니까?

+0

첫 번째로, 나는 그와 비슷한 것을 생각했다. 두 번째 것, 그것이 무엇인지 확신 할 수 없다. – lehtu

관련 문제