项目中需要对获取的图片进行统一处理,剪切成尺寸大小为680*300
private int screenWigth;
private int screenHeight;
/** *获取手机屏幕尺寸大小 * */
private int[] getScreenSize() {
DisplayMetrics dm = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
// float density = dm.density; // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)
// density = dm.density; // 屏幕密度(像素比例:0.75/1.0/1.5/2.0)
int screenWidth = dm.widthPixels;
int screenHeight = dm.heightPixels; // 屏幕高(px,如:800px)
int[] screenSize = new int[] {
screenWidth, screenHeight
};
return screenSize;
}
public void setScreenSize(int[] screenSize) {
screenWigth = screenSize[0];
screenHeight = screenSize[1];
}
/**
* 图片剪切成680*300
*
* @param paramBitmap
* @return
*/
private Drawable getAfterBitmap(Bitmap paramBitmap) {
Bitmap localBitmap = null;
Drawable drawable = null;
try {
int wigth = paramBitmap.getWidth();
int height = paramBitmap.getHeight();
// 图片小于680*300,等比例拉伸再剪切
if (wigth < newWidthHD || height < newHeightHD) {
float scaleWidth = ((float)newWidthHD) / wigth;
float scaleHeight = ((float)newHeightHD) / height;
float scale = scaleWidth > scaleHeight ? scaleWidth : scaleHeight;
Matrix matrix = new Matrix();
matrix.postScale(scale, scale);
Bitmap newbm = Bitmap.createBitmap(paramBitmap, 0, 0, wigth, height, matrix, true);
localBitmap = Bitmap.createBitmap(newbm, 0, 0, newWidthHD, newHeightHD);
} else {
localBitmap = Bitmap.createBitmap(paramBitmap, 0, 0, newWidthHD, newHeightHD);
}
drawable = new BitmapDrawable(localBitmap);
} catch (Exception e) {
drawable = null;
Logger.d(TAG, "getAfterBitmap error", e);
}
return drawable;
}