沿着圆形路径旋转图标/视图,滚动 - Android



我基本上是在尝试实现与此类似的东西。可悲的是,这是一个iOS教程。

我已经在谷歌上搜索了大多数可能的关键字以循环方式移动某些内容,但找不到任何开始的关键字。任何人都可以至少提供有关如何在 android 上被黑客入侵的任何提示吗?请。

谢谢。

我使用旋转动画将图像围绕一个点旋转。

    double r = Math.atan2(evt.getX() - turntable.getWidth() / 2, turntable.getHeight() / 2 - evt.getY());
    rotation = (int) Math.toDegrees(r);
    if (evt.getAction() == MotionEvent.ACTION_MOVE)
        {
                x= (int)evt.getX();
                y = (int)evt.getY();
                    rotateAnim = new RotateAnimation(angle,rotation-50,200,100);
                    rotateAnim.setFillAfter(true);
                    ImageView.setanimation(rotateAnim );
                    ImageView.startAnimation(rotateAnim);
          }

你也可以使用矩阵

    float newRot = new Float(rot);
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.disc);
    Matrix matrix = new Matrix();
    matrix.postRotate(newRot - 50);
    Bitmap redrawnBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
    turntable.setImageBitmap(redrawnBitmap);  
这在

自定义控件中很容易做到。 只需创建一个扩展 View 的类并覆盖 draw() 方法。 然后,您可以侦听触摸并计算用户旋转控件的距离。 然后,您只需要使用这些数据来旋转画布并在其上绘制数字。

-= 更新 =-重写绘制方法时,将获得一个 Canvas 对象。 该对象可让您随心所欲地绘制它。 它看起来像这样:

@Override
public void draw(Canvas c)
{
    c.rotate(amount);
    c.drawBitmap(myImage);
}

这是指向完整画布文档的链接。

最新更新