java - 在 GridView 上保持背景的纵横比

标签 java android gridview

我的 GridView 上有一张图片作为背景,我希望它保持纵横比。 我希望它与手机的高度相匹配,并使用与纵横比相匹配的宽度。

这是当前代码:

<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/gridview"
android:scaleType="centerInside"
android:background="@drawable/gytbg"
android:layout_width="fill_parent" 
android:layout_height="fill_parent"
android:columnWidth="10dp"
android:numColumns="2"
android:verticalSpacing="20dp"
android:horizontalSpacing="0dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>

最佳答案

android:scaleType="centerCrop"

这应该使图像适合 GridView 的高度,保持纵横比,并裁剪剩余的宽度(除非在高度匹配时图像的宽度小于 GridView 的宽度)。

例如

如果您有一个宽度为 400dp、高度为 800dp 的 GridView

600 x 600 的图像将适合高度,然后裁剪剩余的宽度。

但是,如果 GridView 是横向的(宽度为 400dp,高度为 300dp),则 600 x 600 的图像将适合宽度,然后裁剪高度。

如果您只希望它适合高度(假设高度可能会以编程方式改变或由于不同设备的屏幕而改变),我会建议使图像显着变宽,以便即使在显示具有非常宽的宽高比的 GridView 时也是如此比例,它会选择适合高度,裁剪宽度。

关于java - 在 GridView 上保持背景的纵横比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11277615/

相关文章:

java - Java 中的 JSON header 数组

java - Skia项目运行在Android.4.2上,Android 4.2和Android 2.2中的定义是否存在差异?

android - 更改网格单元格的颜色

java - gridView - strings.xml 中的数组

c# - 根据条件在 GridView 中显示图像

java - Eclipse:如何/在何处将文本文件包含在 Java 项目中?

JavaFX:如何实现 'no default focused button'

Android:App Widget Configuration Activity 的行为不像 Activity(编辑自:Android:AppWidget not embedding into home screen)

javascript - Android API 23. WebView如何忽略javascript错误

java - 如何将 JUnit 测试重定向到 Eclipse 中的控制台?