0

私は基本的にこれに似たものを実装しようとしています。悲しいことに、それは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() メソッドをオーバーライドするクラスを作成するだけです。次に、タッチをリッスンして、ユーザーがコントロールをどれだけ回転させたかを計算できます。次に、そのデータを使用してキャンバスを回転させ、数字を描画するだけです。

-= Update =- draw メソッドをオーバーライドすると、Canvas オブジェクトが取得されます。そのオブジェクトを使用すると、好きなように描画できます。次のようになります。

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

これは完全なCanvas ドキュメントへのリンクです。

于 2012-05-16T20:04:37.017 に答える