Как остановить изменение размера растрового изображения при вращении? - PullRequest
2 голосов
/ 02 марта 2012

Я хочу повернуть растровое изображение в своем приложении. Когда я собираюсь повернуть растровое изображение, размер растрового изображения также изменился. Пожалуйста, помогите мне ..

Я пытался использовать следующие методы, но не смог:

1st Method:




public Bitmap rotate(Bitmap bitmapOrg) {
        int width = bitmapOrg.getWidth();
        int height = bitmapOrg.getHeight();

        Matrix matrix = new Matrix();
        matrix.postRotate(45);
        Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, width,
                height, matrix, true);
        BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);
        bitmapOrg = resizedBitmap;
        ImageView imageView = new ImageView(mContext);
        imageView.setImageDrawable(bmd);
        imageView.setScaleType(ScaleType.CENTER);

        bitmapOrg=((BitmapDrawable)imageView.getDrawable()).getBitmap();
        return bitmapOrg;

    }

    float totalRotated = 0;

    public Bitmap rotate(Bitmap mBitmap,float degrees){
            // compute the absolute rotation
            totalRotated = (totalRotated + degrees) % 360;
            // precompute some trig functions
            double radians = Math.toRadians(totalRotated);
            double sin = Math.abs(Math.sin(radians));
            double cos = Math.abs(Math.cos(radians));
            // figure out total width and height of new bitmap
            int newWidth = (int) (mBitmap.getWidth() * cos + mBitmap.getHeight() * sin);
            int newHeight =  (int) (mBitmap.getWidth() * sin + mBitmap.getHeight() * cos);
            // set up matrix
            matrix.reset();
            matrix.postTranslate((newWidth - mBitmap.getWidth()) / 2, (newHeight - mBitmap.getHeight()) / 2);
            matrix.setRotate(totalRotated);

            // create new bitmap by rotating mBitmap
         Bitmap   rotated = Bitmap.createBitmap(mBitmap, 0, 0,newWidth, newHeight, matrix, true);
        return rotated;
    }
...