【发布时间】:2014-01-11 23:32:30
【问题描述】:
我已经尝试了尽可能多的 scaleType 和 fillViewport 和 adjustViewBounds 和 layout_* 排列,但没有一个能满足我的要求。它们要么填满屏幕但失去宽高比 (fillXY),切掉图像的一部分 (centerCrop),或者缩小图像使其不填满屏幕宽度 (centerInside, fitStart, fitCenter, center, matrix) .
这是一个具体的例子:
源图像为 222x470 像素。
模拟器屏幕纵向为 480x800hdpi。
我希望ScrollView 填满整个屏幕。
我希望ImageView 缩放图像,使其填充屏幕的宽度(将源图像从 222 宽拉伸到 480 宽)。
我希望ImageView 保留源图像的纵横比,这意味着它的高度必须从 470 像素缩放到大约 1016 像素。
由于这不适合屏幕(它只有 800 像素高),ScrollView 应该启动。默认情况下,图像的顶部应该显示,ScrollView 应该允许向下滚动以查看其余部分图片。
这只是一个例子。理想情况下,无论图像大小和屏幕大小如何,我都希望它能够正常工作。
如果您知道一种在 XML 布局中完成所有操作的方法,那就加分。
在你们像一大堆砖头(或砖头的手机?)之前,我知道这个网站上有几个类似的问题(见here,here,here, here 和 here),但它们要么没有答案,要么答案不可接受(“使用 fitXY”,它不保留纵横比,或者需要在不是通用解决方案的 ImageView 中指定精确的像素宽度/高度问题)。很高兴能在文档中得到一个可靠的答案。
【问题讨论】:
标签: android android-layout imageview scrollview image-scaling