Android Studio:如何使ImageView沿旋转方向移动

牙齿

这个问题一直困扰着我一段时间,我想知道我是否缺少一种方法或某种东西。此图像可能最好地解释了我的问题在此处输入图片说明

牙齿

因此,我找到了一些链接的帮助,并制定了自己的解决方案。

首先,我使用一些Trig使用其当前旋转来计算要从图像的x和y中减去/减去多少。两者之间的比例是产生方向移动效果的原因。

final double rise = Math.toDegrees(  Math.sin(toRadians(YOU.getRotation()))  )*SPEED;
final double run  = Math.toDegrees(  Math.cos(toRadians(YOU.getRotation()))  )*SPEED;

然后,我使用定时循环并添加x和y集

 (new Thread(new Runnable()
       {
           @Override
           public void run()
           {

               for (int x=0; x<600; x++) {
                   try {
                       Thread.sleep(6);
                       runOnUiThread(new Runnable()  thread
                       {

                           @Override
                           public void run() {
                               YOU.setX((float) (YOU.getX() + run)); //pay attention here
                               YOU.setY((float) (YOU.getY() + rise));//pay attention here

                           }
                       });
                   } catch (InterruptedException e) {
                       // ooops
                   }
               }
           }
       })).start(); 

    }

请注意,我是如何将for循环与其他代码结合使用的,应该注意,这不是必需的,但是我将其用于我的特定需求。如果您愿意,可以放一个while循环而不是for循环,但这部分

 YOU.setX((float) (YOU.getX() + run)); 
 YOU.setY((float) (YOU.getY() + rise));

是加/减x和y的代码。

而且,andSPEED声明中的变量设置为0.02(此处未显示),因为我通过循环添加x和y使其看起来更加平滑。这里的数字越大(每次添加),它就越远,但它不会影响前倾角的精度。尽管我建议至少在其中添加一个补码。riserun

这是我的原始代码,全部放在一个地方,以备您需要时使用。

 public void moveloop(){



       final double rise = Math.toDegrees(  Math.sin(toRadians(YOU.getRotation()))  )*SPEED;
       final double run  = Math.toDegrees(  Math.cos(toRadians(YOU.getRotation()))  )*SPEED;

       (new Thread(new Runnable()
       {
           @Override
           public void run()
           {

               for (int x=0; x<600; x++) {
                   try {
                       Thread.sleep(6);
                       runOnUiThread(new Runnable()  thread
                       {

                           @Override
                           public void run() {
                               YOU.setX((float) (YOU.getX() + run));
                               YOU.setY((float) (YOU.getY() + rise));

                           }
                       });
                   } catch (InterruptedException e) {
                       // ooops
                   }
               }
           }
       })).start(); 

    }

有用的网址:

https://math.stackexchange.com/questions/142073/calculate-new-graph-point-with-coordinate-and-angle

每隔Java运行一次循环

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Android上向正确的方向移动旋转的视图?

来自分类Dev

沿旋转方向移动对象

来自分类Dev

发生方向改变时是否可以旋转imageview?在Android中

来自分类Dev

Android:如何选择RotateAnimation的旋转方向?

来自分类Dev

如何在android studio中的imageView上添加两个具有不同枢轴的旋转?

来自分类Dev

如何在Android Studio中通过触摸来移动,旋转和调整文本大小?

来自分类Dev

在Android中旋转旋转的ImageView

来自分类Dev

在Android中旋转旋转的ImageView

来自分类Dev

Android移动ImageView

来自分类Dev

在Android上移动ImageView

来自分类Dev

Android移动ImageView

来自分类Dev

如何在闪光灯中沿旋转方向移动物体?

来自分类Dev

如何在android中的seekbar上旋转imageView

来自分类Dev

如何在Android中旋转,缩放和收缩imageview

来自分类Dev

Android布局XML旋转方向

来自分类Dev

在Android中控制imageview的旋转

来自分类Dev

如何使用随机方向为android Imageview设置动画?

来自分类Dev

如何使用随机方向为android Imageview设置动画?

来自分类Dev

Android-如何在滑动上移动ImageView

来自分类Dev

如何在Imageview Android上平稳地移动图像

来自分类Dev

Android Studio ImageView

来自分类Dev

沿方向移动对象

来自分类Dev

如何使对象沿我的鼠标光标方向旋转?

来自分类Dev

沿运动方向旋转对象

来自分类Dev

如何在Android Studio中引用ImageView / ImageButton枚举值

来自分类Dev

如何在Android Studio中将imageview绘制到画布中?

来自分类Dev

图像视图移动和旋转的Android动画

来自分类Dev

在android中移动和旋转视图

来自分类Dev

Android:即使设备自动旋转屏幕关闭,如何强制反转肖像方向?

Related 相关文章

热门标签

归档