首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在安卓系统中放大图片以填充整个ImageView

在安卓系统中放大图片以填充整个ImageView
EN

Stack Overflow用户
提问于 2011-07-13 03:15:22
回答 4查看 86K关注 0票数 69

我想把图像放大到ImageView的整个大小。这与使用scaleType=fit_center略有不同,因为如果图像的纵横比与ImageView的纵横比不完全匹配,fit_center会在图像周围留下条带。相反,我希望图像居中并放大,以完全填满封闭视图,并将多余的部分去掉。

我可以通过在onCreate()过程中计算自己的自定义图像矩阵来实现这一点:

final Display display = getWindowManager().getDefaultDisplay();
final float screenWidth = display.getWidth();
final float screenHeight = display.getHeight();
final float imageWidth = splashView.getDrawable().getIntrinsicWidth();
final float imageHeight = splashView.getDrawable().getIntrinsicHeight();
final Matrix splashMatrix = new Matrix();
final float scale = Math.max(screenHeight/imageHeight,screenWidth/imageWidth);
splashMatrix.postScale( scale, scale );
splashView.setImageMatrix(splashMatrix);

这很好用,但似乎必须有一个更容易的方法。有没有人知道有一种方法可以放大ImageView中的图像,同时保留图像的纵横比并完全填充ImageView?

(注意:在我的例子中,我的ImageView占据了整个屏幕,所以我使用getWindowManager().getDisplay()来查找所需的图像大小。您不能使用splashView.getWidth()/getHeight(),因为视图尚未布局且没有大小)

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6669764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档