Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何拖动旋转的DragShadow?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我用ObjectAnimator旋转了TextView,如下所示:

ObjectAnimator rotate = ObjectAnimator.ofFloat(aRotatedTextView,"rotation",0f,someAnglE);

现在,我尝试在长按上拖放旋转的(!)TextView,如下所示:

public Boolean onLongClick(View view) {
    CliPDAta data = CliPDAta.newPlaintext("DragData",(String) view.getTag());
    DragShadowBuilder dragShadowBuilder = new View.DragShadowBuilder(view);
    mDragInProgress = view.startDrag(data,dragShadowBuilder,view,0);
    view.setVisibility(View.INVISIBLE);
    return true;
}

会发生什么是在没有旋转的情况下创建DragShadow(角度== 0).我已经看到了很多位图(但没有旋转)的例子,我无法工作.
有没有办法创建旋转的DragShadow?

解决方法

需要同样的事情.像这样实现它(包括缩放)

new OnTouchListener() {
    @Override
    public Boolean onTouch(final View view,MotionEvent event) {

    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
    double rotationRad = Math.toradians(view.getRotation());
    final int w = (int) (view.getWidth() * view.getScaleX());
    final int h = (int) (view.getHeight() * view.getScaleY());
    double s = Math.abs(Math.sin(rotationRad));
    double c = Math.abs(Math.cos(rotationRad));
    final int width = (int) (w * c + h * s);
    final int height = (int) (w * s + h * c);
    DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(view) {
        @Override
        public void onDrawShadow(Canvas canvas) {
            canvas.scale(view.getScaleX(),view.getScaleY(),width / 2,height / 2);
            canvas.rotate(view.getRotation(),height / 2);
            canvas.translate((width - view.getWidth()) / 2,(height - view.getHeight()) / 2);
            super.onDrawShadow(canvas);
        }

        @Override
        public void onProvideShadowMetrics(Point shadowSize,Point shadowTouchPoint) {
            shadowSize.set(width,height);
            shadowTouchPoint.set(shadowSize.x / 2,shadowSize.y / 2);
        }
    };

    view.startDrag(null,shadowBuilder,0);
    ...
}

大佬总结

以上是大佬教程为你收集整理的android – 如何拖动旋转的DragShadow?全部内容,希望文章能够帮你解决android – 如何拖动旋转的DragShadow?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。