直接上核心
代码
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, options);
final int height = options.outHeight;
final int width = options.outWidth;
int SampleSize = 1;
int reqHeight=800;
int reqWidth=480;
if (height > reqHeight || width > reqWidth) {
final int heightRatio = Math.round((float) height/ (float) reqHeight);
final int widthRatio = Math.round((float) width / (float) reqWidth);
SampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;
}
options.inSampleSize = SampleSize;
// Log.e("Sample", options.inSampleSize+"");
options.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeFile(path, options);
SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd-HHmmss");
Date curDate = new Date(System.currentTimeMillis());
String str = formatter.format(curDate);
File sdCardDir = Environment.getExternalStorageDirectory();
String newPath = sdCardDir.getPath()+"/tempImage1/";
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
File path2 = new File(newPath);
if(!path2.exists()){
path2.mkdirs();
}
}
//创建文件对象,用来储存新的图像文件
Log.e("Image Type", options.outMimeType);
String newImgPath = null;
newImgPath = newPath+str+".jpg";
File f = new File(newImgPath);
try{
//创建文件
f.createNewFile();
}catch(IOException e){
Log.e("Error", e.toString());
}
//定义文件输出流
FileOutputStream fOut = null;
try{
fOut = new FileOutputStream(f);
//将Bitmap存储为PNG格式的图片
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fOut);
}catch(FileNotFoundException e){
e.printStackTrace();
}
try{
//刷新文件流
fOut.flush();
}catch(IOException e){
e.printStackTrace();
}
try{
//关闭文件流
fOut.close();
}catch(IOException e){
e.printStackTrace();
}
代码