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

Chr*_*pix 4 android drag-and-drop shadow

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

我可以通过更改onProvideShadowMetrics和onDrawShadow的输出来修改DragShadowBuilder.

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

    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();
    }
Run Code Online (Sandbox Code Playgroud)

谢谢,

Apu*_*ius 6

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