【问题标题】:Rotate an Android ImageView AND its background旋转 Android ImageView 及其背景
【发布时间】:2010-05-21 15:17:28
【问题描述】:

使用this mechanism 我能够成功地在 ImageView 中旋转图像。效果很好。

但是,如果 ImageView 具有背景图像,则该可绘制对象也不会旋转。如何还可以旋转 ImageView 的背景图片?

【问题讨论】:

    标签: android rotation imageview


    【解决方案1】:

    覆盖 draw() 而不是 onDraw() 来旋转背景。

    @Override
    public void draw(Canvas canvas) {
        canvas.save();
        canvas.rotate(45,xRotation,yRotation);
        super.draw(canvas);
        canvas.restore();
    }
    

    【讨论】:

    • 谢谢!有没有办法在这个旋转上启用抗锯齿?
    【解决方案2】:
    public class MainActivity extends Activity
    {
        private ImageView mImageView = null;
        private Animation mRotateAnimation = null;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            mImageView = (ImageView) findViewById(R.id.my_image);
            mRotateAnimation = AnimationUtils.loadAnimation(this, R.anim.my_rotate_90);
        }
    
        @Override
        public boolean onTouchEvent(MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                mImageView.startAnimation(mRotateAnimation);
                return true;
            }
            return super.onTouchEvent(event);
        }
    }
    

    【讨论】: