在Android中实现图片缩放和旋转

openkk 12年前

btn.setOnClickListener(new View.OnClickListener() {                              @Override              public void onClick(View v) {                  i = ++i;                              ImageView view = (ImageView)findViewById(R.id.imgView);                  // 1、首先加载要操作的图片                  Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.aa);                  //2、得到以上加载图片的高度跟宽度                  int height = bitmap.getHeight();                   int width = bitmap.getWidth();                  //3、定义要缩放成最终的图片高度跟宽度                  int nHeight = 150;                   int nWidth = 180;                  //4、计算缩放比例                  float scaleWidth = ((float) nWidth)/width;                   float scaleHeight = ((float) nHeight)/height;                  //5、创建Matrix对象 Matrix是在Android中用于操作图像的类                  Matrix matrix = new Matrix();                  //6、使用Matrix对象跟缩放比例实现缩放图片                  matrix.postScale(scaleWidth, scaleHeight);                 //同样的,图片旋转只需要通过Matrix改变图片角度即可,生成图片跟7相同。                  Log.i("chens", "======i======"+i);                  if (i % 2 ==0 ) {                      matrix.postRotate(60);                  }else {                      matrix.postRotate(0);                  }                                    //7、生成缩放后的图片                  Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0,width, height, matrix, true);                  view.setImageBitmap(resizedBitmap);                               }          });