Поворотное изображение для Android - PullRequest
5 голосов
/ 16 сентября 2011

Я пытаюсь создать вращающийся объект ImageView, для которого я укажу определенный угол и точку поворота и посмотрю, как он вращается вокруг этой точки поворота. Я пробовал что-то вроде этого:

Matrix matrix = new Matrix();
matrix.postRotate(45, imageView.getWidth(), imageView.getHeight());
imageView.setScaleType(ScaleType.MATRIX);
imageView.setImageMatrix(matrix);

но параметры метода postRotate (второе и третье - точки разворота) вообще НЕ меняют. даже если они равны 0, 0 - это одно и то же.

Итак, я хочу создать ImageView, который будет поворачиваться на определенный угол при инициализации. В этом примере 45 градусов. Я попытался установить границы и персонал .. без помощи.

Как мне это сделать? : /

Ответы [ 3 ]

14 голосов
/ 16 сентября 2011

Вы можете вращать ImageView, используя setRotation (int);

// rotate imageView 45 around center pivot point
imageView.setPivotX(imageView.getWidth()/2);
imageView.setPivotY(imageView.getHeight()/2);
imageView.setRotation(45);

Ссылка: http://goo.gl/WhhGM Изменить: Мне пришлось сократить ссылку из-за а) в URL, некоторые браузеры это не нравится.

0 голосов
/ 21 января 2018

Вот как я использую view.setRotation (угол плавания) в своих приложениях, надеюсь, это будет полезно:

//to make rotation use next code
imageView.setPivotX(imageView.getWidth() / 2);
imageView.setPivotY(imageView.getHeight() / 2);
imageView.setRotation(45);

//to reset rotate state to initial position    
imageView.setPivotX(imageView.getWidth() / 2);
imageView.setPivotY(imageView.getHeight() / 2);    
imageView.setRotation(0);

На основании ответа от Спенсер

0 голосов
/ 21 апреля 2015

Эта функция у меня работает.

public static Bitmap rotateImage (Bitmap srcBitmap, int width, int height, int rotation)
    {
        // create rotated image
        Matrix matrix = new Matrix();
        rotation =  (rotation +1 )   % 3;
        rotation = rotation * 90;
        matrix.postRotate( rotation,
                width,
                height );
        Bitmap rotatedBmp = Bitmap.createBitmap( srcBitmap,
                0,
                0,
                srcBitmap.getWidth(),
                srcBitmap.getHeight(),
                matrix,
                false );

        return rotatedBmp;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...