0

ImageView を特定のピボットに向かって特別な角度で回転させたい。Googleで検索したところ、これに関する解決策がいくつか見つかりましたが、これに関する完全な回答は見つかりませんでした(この回答のように)。

このコードを使用しようとしましたが、ImageView回転しませんでした! その背景だけが回転します(ビューの長方形を回転させずに)

public class ImageViewCustom extends ImageView {
    public Context M_context;

    public ImageViewCustom(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        this.M_context = context;
    }

    public ImageViewCustom(Context context, AttributeSet attrs) {
        super(context, attrs);
        this.M_context = context;
    }

    public ImageViewCustom(Context context) {
        super(context);
        this.M_context = context;
    }

    public float xPivot;
    public float yPivot;
    public float degree;

    public void draw(Canvas canvas) {
        canvas.save();
        canvas.rotate(degree, xPivot, yPivot);
        super.draw(canvas);
        canvas.restore();
    }
}

Animationでは、使用せずに、回転メソッドをオーバーライドまたは追加するだけでImageView を回転させるにはどうすればよいImageViewCustomですか?

前もって感謝します :)

4

1 に答える 1

-1
Bitmap bmp = arrow.copy(Bitmap.Config.ARGB_8888, true);
Matrix matrix = new Matrix();
matrix.postRotate(direction);
Bitmap bmpRotated = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(),bmp.getHeight(), matrix, true);
iv.setImageBitmap(bmpRotated);

iv はイメージビューであり、方向はビットマップを回転する必要がある角度です。

于 2012-09-13T13:42:51.370 に答える