大佬教程收集整理的这篇文章主要介绍了android – 如何拖动旋转的DragShadow?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
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,请注明来意。