2011-11-15 5 views
-1

레이아웃 내에서보기를 이동하고 API 레벨 11 (startDrag, shadowView로 View.DragShadowBuilder를 덮어 씀)로 구현하고 싶습니다. 그러나 문제가 생겨서 뷰를 놓을 때 실제 좌표를 가져올 수 없습니다.드래그 할 때 드래그 섀도우 좌표를 가져 옵니까?

나는 getView.getX()을 사용해 보았지만 드롭보기에서는 값이 0으로 효과적이지 못했습니다.

시간 드롭보기가있는 경우 어떻게 좌표를 얻을 수 있습니까?

public SimeDragShadowView(View view, Context context) { 
     super(view); 
     shadow = new ColorDrawable(Color.BLUE); 
     mDragShadowView = getView(); 
     mInitX = (int) view.getX(); 
     mInitY = SimeTabContainer.mDownViewInitY; 
     if(DEBUG){ 
      Log.d(TAG, " shadow button width is .."+getView().getWidth() +"... height is .."+getView().getHeight()); 
     } 
    } 

    @Override 
    public void onProvideShadowMetrics(Point size, Point touch) { 
     // Defines local variables 
     if(DEBUG){ 
      Log.d(TAG, " onProvideShadowMetrics()"); 
     } 
     int width, height; 
     width = getView().getWidth(); 
     height = getView().getHeight(); 
     shadow.setBounds(mInitX-10, mInitY-10, mInitX + width, mInitY + height);   
     size.set(width, height); 
     touch.set(width/2, height/2); 
    } 

    @Override 
    public void onDrawShadow(Canvas canvas) { 
     // Draws the ColorDrawable in the Canvas passed in from the system. 
     shadow.draw(canvas); 
     getView().draw(canvas); 
     if(DEBUG){ 
      Log.d(TAG, " getView()... x cor is .."+getView().getX()); 
     }  
    } 

답변

0

이 문제가 해결되어, 상기 방법은 내가 수, moveoffsets 번호 이벤트 액션 값 2 수신기, 및 이벤트가 dragView에 수신 된 셀은 원래의 위치에 따라 및 카운트 인 사용 보기를 드롭 위치를 확인하십시오.

관련 문제