android 图片放大的处理

 

场景:从网络上下载下来的小图片,直接使用设置某些区域的大小的时候,会使得图片变形。这个时候,最佳的解决方案是,在图片的清晰度可以容忍的情况下,将图片进行拉升放大处理,处理过程如下:

Java代码  收藏代码
  1. Bitmap originalBitmap = originalBitmap1;  
  2.         int bw = originalBitmap.getWidth();  
  3.         int bh = originalBitmap.getHeight();  
  4.          float scaleWidth = expectedWidth*1.0F / bw;  
  5.          float scaleHeight = expectedHeight*1.0F / bh;  
  6.          //取伸缩小的值  
  7.          float scale = scaleHeight < scaleWidth ?  scaleHeight : scaleWidth;  
  8.            
  9.          Matrix matrix = new Matrix();  
  10.          matrix.postScale(scale, scale);  
  11.          Bitmap resizedBitmap = Bitmap.createBitmap(originalBitmap, 00, bw, bh, matrix, true);  
  12.          // 绘制背景图片  
  13.          Bitmap mBitmap = Bitmap.createBitmap(expectedWidth, expectedHeight, Bitmap.Config.RGB_565);  
  14.          Canvas mCanvas = new Canvas(mBitmap);  
  15.          Paint bitmapPaint = new Paint(Paint.FILTER_BITMAP_FLAG);  
  16.          // 设定背景颜色  
  17.          mCanvas.drawColor(0xff000000);  
  18.          float left = expectedWidth / 2 - bw * scale / 2;  
  19.          float top = expectedHeight / 2 - bh * scale / 2;  
  20.          mCanvas.drawBitmap(resizedBitmap,left ,top , bitmapPaint);  
  21.          mCanvas.save();  
  22.          return mBitmap;  
路漫漫其修远兮 吾将上下而求索
原文地址:https://www.cnblogs.com/hudabing/p/3110465.html