DragShadowBuilder - 超过目标时改变阴影?

时间:2012-03-14 14:49:11

标签: android drag-and-drop shadow

我知道我可以在阴影结束时更改目标,但我真的想要更改阴影以指示当它超过目标时将对其执行的操作。

我可以通过改变onProvideShadowMetrics&的输出来修改DragShadowBuilder。 onDrawShadow。

到目前为止,我已经添加了一些公共方法,这些公共方法可以被目标访问并尝试更新保存画布和类型的类变量。视图,但看起来它在更改时实际上不会更新。这是我的公共方法,当阴影超过目标时会调用它。

    public void onTarget(String string) {
        mView.draw(mCanvas); 
        Paint redPaint = getFillTextPaint(0.00003f, 0xFFFF0000, 0.05225f);
        RectF r = new RectF();
        r.set(mCanvas.getWidth()-100.0f, 0,mCanvas.getWidth(), mCanvas.getHeight());
        mCanvas.drawRoundRect(r,8.0f,8.0f, redPaint);
        mView.invalidate();
    }

谢谢,

1 个答案:

答案 0 :(得分:6)

DragShadowBuilder.onDrawShadow()在拖放过程开始时由 View.startDrag()调用。
不幸的是,随着API级别11引入的原生Drag and Drop不支持在启动后更改位图 或者,您可以如图所示滚动自己的拖放机制,例如,herehere,就像在API级别11之前完成的那样。