私は基本的にこれに似たものを実装しようとしています。悲しいことに、それはiOSチュートリアルです。
私は何かを循環的に動かすために可能な限り多くのキーワードをグーグルで検索しましたが、最初に何かを見つけることができませんでした。少なくとも誰かがこれを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() メソッドをオーバーライドするクラスを作成するだけです。次に、タッチをリッスンして、ユーザーがコントロールをどれだけ回転させたかを計算できます。次に、そのデータを使用してキャンバスを回転させ、数字を描画するだけです。
-= Update =- draw メソッドをオーバーライドすると、Canvas オブジェクトが取得されます。そのオブジェクトを使用すると、好きなように描画できます。次のようになります。
@Override
public void draw(Canvas c)
{
c.rotate(amount);
c.drawBitmap(myImage);
}
これは完全なCanvas ドキュメントへのリンクです。