放弃时获取DragShadow坐标?

时间:2011-11-15 03:12:28

标签: java android

我想在布局中移动视图,并使用API​​ Level 11(startDrag,将View.DragShadowBuilder覆盖为shadowView)实现,但我遇到了一个问题,在删除视图时无法获得实际坐标。

我尝试使用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());
        }       
    }

1 个答案:

答案 0 :(得分:0)

这个问题已经解决了,我使用的方法是,监听事件动作值2,并将已接收到的事件计数到dragView,根据原始位置和计数moveoffsets数,我可以检查位置i放下视图。