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

안드로이드 뷰 scale 축소와 Drag 좌표에 대하여 질문드려요

0 추천

안녕하세요 커스텀뷰 구현중에 질문드려요

1.ScrollView 내부에 리니어레이아웃을 넣고

리니어 안에 자식뷰들을 쌓는 것을 구현하였구요

 

2.자식뷰들에게 OnDragListener를 세팅하여

자식뷰들끼리 위치를 바꾸도록 구현하였습니다.

 

3.스크롤  될 아이템들을 한눈에 보기 편하도록 하기 위해서
.ScrollView 내부에 리니어레이아웃을 Scale을 0.8로 주어 80% 정도 축소한 상태로 위 아래로 드래그를 시도
하였는데 여기서 부터 문제가 발생하였습니다. 

아래 그림1은 축소 전이구요

아래 그림2는 축소 후 입니다. 

 

아래 그림2를 보시면 아시겠지만 리니어 축소 후에 리니어 내부 아이템들을 아래로 드래그 하여 이동 시킬경우
점차 드래그 간격이 증가하더니 맨아래 까지 아이템이 내려가기 위해서는 그림2의 표시한 차이만큼 드래그 해야 맨 마지막으로 이동하게 됩니다. 어떻게 해야 리니어를 축소한 상태에서 아이템들을 정상적으로 드래그 하여 이동 시킬 수 있을까요? ㅜㅡ 

[소스코드는 글 하단에 기록하였습니다.]


 

그림 1

그림 2

 

 

[아래는 애니메이션 xml 입니다.]

zoom_out.xml

 

<?xml version="1.0" encoding="utf-8"?>
    android:fillAfter="true" >
 
    <scale
        android:duration="500"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:toXScale="0.8"
        android:toYScale="0.8" >
    </scale>
 
</set>

액티비티 소스 코드는 다음 링크에 첨부합니다.
https://drive.google.com/file/d/0B3YOFa8dcm0lVVdYUHNBTmJmUWM/view?usp=sharing

 

안드로이드 초보 님이 2015년 4월 6일 질문
축소를 하셨으면, 드래그 리스너에서 ACTION들이 있을텐데, 축소한 만큼 해당 보여지는 뷰의 영역또한 줄여주어, 드래그 리스너가 특정 좌표값을 못 넘도록 해보심은 어떠신가요? ACTION에서 Location change였나. 기억은 잘 안나지만 움직일때마다 좌표를 logcat에서 확인 할 수 있을텐데, 줄였을 경우 비례 하여 특정 좌표이상 못넘어가게 설정해보세요.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...