リソースからロードされたDrawable
は、描画時にどのように回転することができますか?例えば、私は矢印を描き、描かれたときにそれを異なる方向に回転させたいと思っていますか?Androidでドロワーブルを回転する
答えて
あなたが描画可能な準備をビットマップとキャンバスクラスの機能を使用する必要があります。
Bitmap bmpOriginal = BitmapFactory.decodeResource(this.getResources(), R.drawable.image2);
Bitmap bmResult = Bitmap.createBitmap(bmpOriginal.getWidth(), bmpOriginal.getHeight(), Bitmap.Config.ARGB_8888);
Canvas tempCanvas = new Canvas(bmResult);
tempCanvas.rotate(90, bmpOriginal.getWidth()/2, bmpOriginal.getHeight()/2);
tempCanvas.drawBitmap(bmpOriginal, 0, 0, null);
mImageView.setImageBitmap(bmResult);
このサンプルコードで画像中心に対して90度の回転が生じる。
基本的にこの:
ImageView spaceshipImage = (ImageView) findViewById(R.id.spaceshipImage);
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
spaceshipImage.startAnimation(hyperspaceJumpAnimation);
ソースリンク:
http://developer.android.com/guide/topics/graphics/2d-graphics.html#tween-animation
質問者が望んでいたものではなく、一連の画像の間を回転します.1枚の画像を平面的に回転させたかったのです。 – fredley
実際には、トゥイーンアニメーションを使用して(1つのDrawableで)回転を実行できます。 http://developer.android.com/guide/topics/resources/animation-resource.html#Tween – edthethird
エド、サポートに感謝します。 –
本質的にそれまで沸騰させることができる:あなたがBitmapDrawableを持っている場合、
をアンチエイリアス設定することにより、出力の品質を向上することが望ましいかもしれない(N逆)キャンバスの変換を行う代わりに描画可能private BitmapDrawable drawable; // or Drawable
protected void onDraw(Canvas canvas) { // inherited from View
//...
canvas.save();
canvas.rotate(degrees, pivotX, pivotY);
drawable.draw(canvas);
canvas.restore();
//...
}
を形質転換
drawable.setAntialias(true);
私はこれが今最も効率的な解決策だと思っています –
実際にcanvas.rotate()はdrawableを描画する前に完了しています。 – Ridcully
あなたはonMeasure関数の実装を見逃していませんか? –
私にとっては受け入れられた答えはありません。正方形でない画像があるので、コードを少し変更しました。
private Bitmap rotateDrawable(@DrawableRes int resId) {
Bitmap bmpOriginal = BitmapFactory.decodeResource(getResources(), resId);
Bitmap bmpResult = Bitmap.createBitmap(bmpOriginal.getHeight(), bmpOriginal.getWidth(), Bitmap.Config.ARGB_8888);
Canvas tempCanvas = new Canvas(bmpResult);
int pivot = bmpOriginal.getHeight()/2;
tempCanvas.rotate(90, pivot, pivot);
tempCanvas.drawBitmap(bmpOriginal, 0, 0, null);
return bmpResult;
}
mImageView.setImageBitmap(rotateDrawable(R.drawable.some_image));
- 1. Androidアナログクロック:プログラムでドロワーブルを設定する
- 2. Androidビューを回転する
- 3. Androidアニメーション回転
- 4. 回転アニメーションandroid
- 5. Android:プログラムでダイアログを回転する
- 6. センターでイメージピボットを回転する - Android
- 7. Androidの軸でビットマップを回転する
- 8. COCOS2D Androidでスプライトイメージを回転&スケーリングする
- 9. Androidで回転ビットマップを発行する
- 10. Android:ランドスケープに回転
- 11. Android:回転を90°回転させず180°回転できるようにする
- 12. AndroidでLinearLayoutを回転させる
- 13. Androidマップビュー:オーバーレイアイテムを回転する
- 14. Androidを90度回転する
- 15. Androidデバイスの画面回転による回転オフオフ
- 16. Android:サークルメニューが動的に回転する
- 17. Android - 非ブロッキング回転ProgressDialog
- 18. Android回転ダイヤルセットクリック可能エリア
- 19. Androidセンサーの回転角度
- 20. Android - フラグメント画面の回転
- 21. レイアウトファイルのAndroidイメージビューの回転
- 22. Android Logcatの回転サイズと回転数のパラメータ
- 23. Androidでのレイアウトの問題:回転TextView
- 24. Androidのドラッグアンドドロップ/キャンバスでのビットマップの回転
- 25. Android、タッチで画像を回転するのを助ける
- 26. 回転行列をnumpyで効率的に回転するポイント
- 27. Androidで自動回転情報を取得する
- 28. Androidで回転コントロールを実装する方法は?
- 29. Androidで縮小せずに画像を回転する
- 30. 回転OpenStreetMapビュー - Androidで回転後に指の移動方向に地図をスワイプする方法は?
[どのように私はのMapViewで駆動方向を示す矢印を描くことができますか?]の可能複製(http://stackoverflow.com/questions/4331794/how-can-i-draw-an-arrow-showing - 運転中の地図表示) – Jonas
質問は全く異なりますが、その答えは関連していると思います。 – Computerish