how to rotate a bitmap 90 degrees

后端 未结 10 1577
离开以前
离开以前 2020-11-28 03:09

There is a statement in android canvas.drawBitmap(visiblePage, 0, 0, paint);

When I add canvas.rotate(90), there is no effect. But if I wri

10条回答
  •  暖寄归人
    2020-11-28 03:57

    Below is the code to rotate or re size your image in android

    public class bitmaptest extends Activity {
        @Override
        public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            LinearLayout linLayout = new LinearLayout(this);
    
            // load the origial BitMap (500 x 500 px)
            Bitmap bitmapOrg = BitmapFactory.decodeResource(getResources(),
                   R.drawable.android);
    
            int width = bitmapOrg.width();
            int height = bitmapOrg.height();
            int newWidth = 200;
            int newHeight = 200;
    
            // calculate the scale - in this case = 0.4f
            float scaleWidth = ((float) newWidth) / width;
            float scaleHeight = ((float) newHeight) / height;
    
            // createa matrix for the manipulation
            Matrix matrix = new Matrix();
            // resize the bit map
            matrix.postScale(scaleWidth, scaleHeight);
            // rotate the Bitmap
            matrix.postRotate(45);
    
            // recreate the new Bitmap
            Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0,
                              width, height, matrix, true);
    
            // make a Drawable from Bitmap to allow to set the BitMap
            // to the ImageView, ImageButton or what ever
            BitmapDrawable bmd = new BitmapDrawable(resizedBitmap);
    
            ImageView imageView = new ImageView(this);
    
            // set the Drawable on the ImageView
            imageView.setImageDrawable(bmd);
    
            // center the Image
            imageView.setScaleType(ScaleType.CENTER);
    
            // add ImageView to the Layout
            linLayout.addView(imageView,
                    new LinearLayout.LayoutParams(
                          LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT
                    )
            );
    
            // set LinearLayout as ContentView
            setContentView(linLayout);
        }
    }
    

    You can also check this link for details : http://www.anddev.org/resize_and_rotate_image_-_example-t621.html

提交回复
热议问题