拍照后,缩放图片的程序
public class PictureUtils {
public static Bitmap getScaledBitmap(String path,int destWidth,int destHeight){
BitmapFactory.Options options=new BitmapFactory.Options();
options.inJustDecodeBounds=true;
BitmapFactory.decodeFile(path,options);
float srcWidth=options.outWidth;
float srcHeight=options.outHeight;
int inSampleSize=1;
if(srcHeight>destHeight||srcWidth>destWidth){
float heightScale=srcHeight/destHeight;
float widthScale=srcWidth/destWidth;
inSampleSize=Math.round(heightScale>widthScale?heightScale:widthScale);
}
options=new BitmapFactory.Options();
options.inSampleSize=inSampleSize;
return BitmapFactory.decodeFile(path,options);
}
上述方法中inSampleSize值很关键,它决定着缩略图像的大小。假设这个值是1 的话,就表示缩略图和原始照片的水平像素大小一样,如果是2 的话,他们的水平像素比就是1:2。
下面再添加一个getScaledBitmap(String,Activity)静态Bitmap估算的方法。这个方法是先确认屏幕的尺寸,然后按照此缩放图像。这样就能保证载入的ImageView永远不会过大。
public static Bitmap getScaledBitmap(String path, Activity activity){
Point size=new Point();
activity.getWindowManager().getDefaultDisplay().getSize(size);
return getScaledBitmap(path,size.x,size.y);
}
}
最后在应用中去调用这个类即可