0

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

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

谢谢。

4

2 回答 2

2

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

    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);  
于 2012-05-21T04:53:25.290 回答
1

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

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

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

这是完整Canvas 文档的链接。

于 2012-05-16T20:04:37.017 回答