【问题标题】:Scale an ImageView to fill screen horizontally and scroll (if necessary) vertically in ScrollView缩放 ImageView 以水平填充屏幕并在 ScrollView 中垂直滚动(如有必要)
【发布时间】:2014-01-11 23:32:30
【问题描述】:

我已经尝试了尽可能多的 scaleTypefillViewportadjustViewBoundslayout_* 排列,但没有一个能满足我的要求。它们要么填满屏幕但失去宽高比 (fillXY),切掉图像的一部分 (centerCrop),或者缩小图像使其不填满屏幕宽度 (centerInside, fitStart, fitCenter, center, matrix) .

这是一个具体的例子:

源图像为 222x470 像素。
模拟器屏幕纵向为 480x800hdpi。

我希望ScrollView 填满整个屏幕。
我希望ImageView 缩放图像,使其填充屏幕的宽度(将源图像从 222 宽拉伸到 480 宽)。
我希望ImageView 保留源图像的纵横比,这意味着它的高度必须从 470 像素缩放到大约 1016 像素。
由于这不适合屏幕(它只有 800 像素高),ScrollView 应该启动。默认情况下,图像的顶部应该显示,ScrollView 应该允许向下滚动以查看其余部分图片。

这只是一个例子。理想情况下,无论图像大小和屏幕大小如何,我都希望它能够正常工作。

如果您知道一种在 XML 布局中完成所有操作的方法,那就加分。

在你们像一大堆砖头(或砖头的手机?)之前,我知道这个网站上有几个类似的问题(见hereherehereherehere),但它们要么没有答案,要么答案不可接受(“使用 fitXY”,它不保留纵横比,或者需要在不是通用解决方案的 ImageView 中指定精确的像素宽度/高度问题)。很高兴能在文档中得到一个可靠的答案。

【问题讨论】:

    标签: android android-layout imageview scrollview image-scaling


    【解决方案1】:

    回答我自己的问题,希望对其他人有所帮助。

    我找到了一个简单的实用答案hereAspectRatioImageView 类在我所有的 XML 缩放尝试都失败的情况下工作。

    【讨论】:

      猜你喜欢
      • 2013-11-28
      • 2020-09-23
      • 1970-01-01
      • 2016-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多