从SDCard获取的图片按分辨率处理的方法

前段时间公司开发的Launcher要做主题切换的功能,但切换主题时需要从sdcard中获取要切换的图片资源,拿到后图片的大小不正常,

后来查找原因是:系统对不同分辨率拿到的图片资源会自动的做转化,所以现在要做的是把图片按不同的分辨率转化成图片实际的大小

代码转化如下:

 

[java]  view plain copy
  1. 从SD卡获取的图片按分辨率处理  
  2. public static Bitmap scaleImage(Bitmap bmp,int displayWidth,int displayHeight) {  
  3.         float scaleWidth = 1,scaleHeight = 1;  
  4.         int bmpWidth = bmp.getWidth();  
  5.         int bmpHeight = bmp.getHeight();  
  6.         if (displayWidth >= 480 && displayWidth <720) {  
  7.             double scale = 0.75;  
  8.             scaleWidth = (float) (scaleWidth * scale);  
  9.             scaleHeight = (float) (scaleHeight * scale);  
  10.             Matrix matrix = new Matrix();  
  11.             matrix.postScale(scaleWidth, scaleHeight);  
  12.               return Bitmap.createBitmap(bmp, 00, bmpWidth, bmpHeight, matrix, true);  
  13.         } else if (displayWidth >= 720 && displayWidth < 1080) {  
  14.              return bmp;  
  15.         } else if (displayWidth >= 1080) {  
  16.              double scale = 1.5;  
  17.              scaleWidth = (float) (scaleWidth * scale);  
  18.              scaleHeight = (float) (scaleHeight * scale);  
  19.              Matrix matrix = new Matrix();  
  20.              matrix.postScale(scaleWidth, scaleHeight);  
  21.              return Bitmap.createBitmap(bmp, 00, bmpWidth, bmpHeight, matrix, true);  
  22.         }  
  23.         return bmp;  
  24.     }  


转载一个大牛:http://blog.csdn.net/chenshijun0101/article/details/38295225



你可能感兴趣的:(从SDCard获取的图片按分辨率处理的方法)