2011-11-15 4 views
-1

レイアウト内のビューを移動し、APIレベル11(startDrag、shadowViewとしてView.DragShadowBuilderを上書き)で実装したいが、ドロップビューのときに実際の座標を取得できないという問題がある。ドロップ時にドラッグシャドー座標を取得しますか?

私はgetView.getX()を使用しようとしましたが、ドロップビューの場合は値がゼロであるため有効ではありません。

タイムドロップビューで座標を取得するにはどうすればよいですか?

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に受信されたカウント、元の位置に応じてカウントするために、IS使用しました私はビューをドロップする位置を確認してください。

関連する問題