2013-08-19 87 views
0

我正在執行drag'n'drop功能到我的應用程序。 我正在移動TextView對象,並且我正在使用DragShadowBuilder爲此textview構建陰影。
問題是,有沒有辦法在拖動項目時更改textView文本?我的意思是在 DragEvent.ACTION_DRAG_ENTEREDDragEvent.ACTION_DRAG_LOCATION的情況下?Android DragShadowBuilder視圖刷新

回答

0
private static class MyDragShadowBuilder extends View.DragShadowBuilder { 

// The drag shadow image, defined as a drawable thing 
private static Drawable shadow; 

    // Defines the constructor for myDragShadowBuilder 
    public MyDragShadowBuilder(View v) { 

     // Stores the View parameter passed to myDragShadowBuilder. 
     super(v); 

     // Creates a draggable image that will fill the Canvas provided by the system. 
     shadow = new ColorDrawable(Color.LTGRAY); 
    } 

    // Defines a callback that sends the drag shadow dimensions and touch point back to the 
    // system. 
    @Override 
    public void onProvideShadowMetrics (Point size, Point touch) 
     // Defines local variables 
     private int width, height; 

     // Sets the width of the shadow to half the width of the original View 
     width = getView().getWidth()/2; 

     // Sets the height of the shadow to half the height of the original View 
     height = getView().getHeight()/2; 

     // The drag shadow is a ColorDrawable. This sets its dimensions to be the same as the 
     // Canvas that the system will provide. As a result, the drag shadow will fill the 
     // Canvas. 
     shadow.setBounds(0, 0, width, height); 

     // Sets the size parameter's width and height values. These get back to the system 
     // through the size parameter. 
     size.set(width, height); 

     // Sets the touch point's position to be in the middle of the drag shadow 
     touch.set(width/2, height/2); 
    } 

    // Defines a callback that draws the drag shadow in a Canvas that the system constructs 
    // from the dimensions passed in onProvideShadowMetrics(). 
    @Override 
    public void onDrawShadow(Canvas canvas) { 

     // Draws the ColorDrawable in the Canvas passed in from the system. 
     shadow.draw(canvas); 
    } 
} 

Drag n drop android