基于纵横比的Android布局?

基于纵横比的Android布局?,android,aspect-ratio,Android,Aspect Ratio,这有点难以解释,因此我将尝试使用一个示例 假设我有一个3:2的图像,这在我的一个应用程序中是一样的。我希望ImageView的宽度与其父视图相匹配(match\u parent),并且我希望根据图像的纵横比和图像的宽度缩放高度 在安卓系统中这怎么可能?我真的很想知道是否有比为各种不同的屏幕大小创建预定义大小更好的方法 另一个场景可能是一个有很多项目的网格视图——如果我能告诉Android它应该在每行显示多少项目,以及这些项目应该有多大的纵横比,那就太好了。这会让事情变得更简单。ImageView

这有点难以解释,因此我将尝试使用一个示例

假设我有一个3:2的图像,这在我的一个应用程序中是一样的。我希望
ImageView
的宽度与其父视图相匹配(
match\u parent
),并且我希望根据图像的纵横比和图像的宽度缩放高度

在安卓系统中这怎么可能?我真的很想知道是否有比为各种不同的屏幕大小创建预定义大小更好的方法


另一个场景可能是一个有很多项目的网格视图——如果我能告诉Android它应该在每行显示多少项目,以及这些项目应该有多大的纵横比,那就太好了。这会让事情变得更简单。

ImageView的缩放参数如何?可能是这样的:

<ImageView
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:scaleType="whatever you want"
/>


最好的解决方案是简单地设置
版面宽度和
版面高度,然后将
android:scaleType
设置为
centerCrop
。它远不是完美的,但工作正常,如果您使用
auto_-fit
GridView

一起使用,您可以获得一些相当不错的结果,因此我认为您所寻找的并不存在。当我需要将GridView中的一些图像设置为相同的宽度和高度时,我最终在GridView的适配器中以编程方式完成了这项工作。如果要使用GridView,则可以通过编程告诉它应该有多少列,然后在适配器的getView方法中指定图像的宽度和高度。这很难看,但你打算怎么办!