【问题标题】:DragShadowBuilder - Changing Shadow when over target?DragShadowBuilder - 超过目标时更改阴影?
【发布时间】:2012-03-14 14:49:10
【问题描述】:

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

我可以通过更改 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();
    }

谢谢,

【问题讨论】:

    标签: android drag-and-drop shadow


    【解决方案1】:

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

    【讨论】:

    • 不知道你把Bitmap视图放在LocalState Object里面能不能拉出来,边拖边修改。我真的可以试试。
    • 我认为这行不通,因为位图是在您无法访问的 Surface 上绘制的。查看View的源代码
    • 是否有一个功能示例显示自定义 DragShadowBuilder 绘制不同的形状而不是用户触摸的视图?我已经搜索了几个小时,但没有任何效果......
    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 2018-12-02
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    相关资源
    最近更新 更多