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

뷰 자체를 드래그 앤 드롭하는 방법

0 추천

안녕하세요

초보 개발자입니다.

검색해 보면 이미지뷰를 드래그하는 방법은 많이 나와 있는 것을 확인했는데, 이미지뷰나 텍스트뷰, 버튼을 담고 있는 뷰(레이아웃) 자체를 드래그하고 싶은데 어떻게 하면 되나요?

아래에 있는 이미지뷰를 드래그 하는 소스를 조금 바꿔서 해 봤는데 레이아웃가 전혀 움직이지 않습니다.

public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        me = (ImageView)findViewById(R.id.me);
        me.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_MOVE:
viewX = viewX + (int)event.getX();
viewY = viewY + (int)event.getY();
 
LayoutParams laypam = new LayoutParams (me.getWidth(), me.getHeight(), viewX, viewY) ;
me.setLayoutParams(laypam);
break;
}//end switch
return true;
}
});
    }
 
어떤 방법이 있을까요?
아시는 분은 답변 부탁드립니다.
jwinjwin (270 포인트) 님이 2014년 6월 3일 질문

2개의 답변

0 추천
상위 layout 이 무언지 먼저 알아야 겠지만

margin 이나 padding 값을 변경해 주세요 일단 움직일것입니다.
aucd29 (218,390 포인트) 님이 2014년 6월 3일 답변
우선 답변 감사합니다.
무슨 뜻인지는 조금 이해가 가지만, 터치되는 좌표값과 layout의 margin과 padding값을 어떻게 연동할지 감이 안 잡힙니다.
다시 답변주셔서 감사합니다.
0 추천
setX, setY는 안되나요?

 

Layoutparams 사용법은 정확한건가요?

 

그러니깐, 버튼하나 만들어서 버튼누르면 레이아웃 위치가 변한다던지 하는건 확인된건가요?

상위 레이아웃 종류에따라 설정방법도 조금씩 달라집니다.

프레임레이아웃같은경우는 그라비티가 없으면 안움직이거나 그럴수있구요.

상위레이아웃과 layourparams가 다른 레이아웃이면 안움직일수 있습니다.

 

님이올린소스만으론 확인히 조금 힘드네요..
기초개발자 (24,060 포인트) 님이 2014년 6월 3일 답변
...