在没有动画的情况下旋转ImageButton onCreate

时间:2014-12-03 14:14:01

标签: android rotation imagebutton oncreate

是否可以使用onCreate()函数旋转ImageButton?或者您是否必须使用以onCreate()开头的动画?因为有了动画,我可以看到一点点"轻弹"在活动开始......

2 个答案:

答案 0 :(得分:1)

您可以使用扩展onDraw()的自定义类覆盖ImageButton方法(我确定您已经拥有)。

    @Override
    protected void onDraw(@NonNull Canvas canvas) {
        super.onDraw(canvas);
        // Rotate a Bitmap
        final Matrix matrix = new Matrix();
        matrix.setRotate(angle, imageCenterX, imageCenterY);
        canvas.drawBitmap(bitmap, matrix, null);
        /*
         * OR
        **/
        // Rotate the canvas
        canvas.save(Canvas.MATRIX_SAVE_FLAG);
        canvas.rotate(-angle);
        canvas.drawBitmap(bitmap, left, top, null);
        canvas.restore();
    }

选择一个或另一个解决方案,而不是两者一起;)

修改

经过一些快速反思后,这也可以起作用(未经测试):

    @Override
    protected void onDraw(@NonNull Canvas canvas) {
        canvas.rotate(-angle);
        super.onDraw(canvas);
    }

答案 1 :(得分:1)

您可以使用ViewCompat.setRotation(buttonInstance, rotationAngle);。从文档

  

设置视图围绕轴心点旋转的度数。