Matrix以及图片适配计算相关

本文详细介绍了如何在Android中进行图片缩放计算,确保图片等比适应屏幕,并探讨了Matrix的setScale、preScale和postScale的区别,通过实例解析了它们的执行顺序和效果。
摘要由CSDN通过智能技术生成

一、图片缩放的计算方法

int mScreenWidth; // 屏幕宽度
int mScreenHeight; // 屏幕高度
int mImageWidth; // 图片宽度
int mImgaeHeight; // 屏幕高度

float imgRatio = (float)mImageWidth / (float) mImgaeHeight;
float screenRatio = (float)mScreenWidth / (float) mScreenHeight;

1.1 图片压缩
目的:让图片等比压缩到屏幕内,尽量不让图片尺寸超出屏幕,如果图片剪裁
if (imgRatio < maxRatio) {
   // 实际图片宽高比小于最大尺寸宽高比时,说明图片细长,期望图片高度设置为最大高度,宽度等比压缩;
   // 含义同两者的高度比数值小,图片以高度比为基准等比压缩
   imgRatio = maxHeight / actualHeight;
   actualWidth = (int) (imgRatio * actualWidth);
   actualHeight = (int) maxHeight;

} else if (imgRatio > maxRatio) {
     // 实际图片宽高比大于最大尺寸宽高比时,说明图片宽窄,期望宽度设置为最大宽度,高度等比压缩;
     // 含义同两者的宽度比数值小,图片以宽度比为基准等比压缩
     imgRatio = maxWidth / actualWidth;
     ctualHeight = (int) (imgRatio * actualHeight)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值