根据屏幕的宽度,计算出图片占满屏幕的宽需要缩放的比例
/**
* 计算出图片初次显示需要放大倍数
*
* @param imagePath 图片的绝对路径
*/
public float getInitImageScale(String imagePath) {
Bitmap bitmap = BitmapFactory.decodeFile(imagePath);
WindowManager wm = this.getWindowManager();
int width = wm.getDefaultDisplay().getWidth();
int height = wm.getDefaultDisplay().getHeight();
// 拿到图片的宽和高
int dw = bitmap.getWidth();
int dh = bitmap.getHeight();
float scale = 1.0f;
//图片宽度大于屏幕,但高度小于屏幕,则缩小图片至填满屏幕宽
if (dw > width && dh <= height) {
scale = width * 1.0f / dw;
}
//图片宽度小于屏幕,但高度大于屏幕,则放大图片至填满屏幕宽
if (dw <= width && dh > height) {
scale = width * 1.0f / dw;
}
//图片高度和宽度都小于屏幕,则放大图片至填满屏幕宽
if (dw < width && dh < height) {
scale = width * 1.0f / dw;
}
//图片高度和宽度都大于屏幕,则缩小图片至填满屏幕宽
if (dw > width && dh > height) {
scale = width * 1.0f / dw;
}
return scale;
}