提问人:Newbie_programmer 提问时间:11/1/2023 最后编辑:Newbie_programmer 更新时间:11/20/2023 访问量:49
如何在 GridView Android Studio 中完美地适应图像
How to fit an image perfectly inside GridView Android Studio
问:
我正在尝试创建一个使用 GridView 显示图像的项目。但问题是图像可以有各种大小。它们有些很大,有些很小。因此,我想在 GridView 中完美地适合图像。但无论我尝试什么,都不会让它变得更好。下面这张照片可以清除更多-
我希望图片是正方形大小和中心裁剪的,但由于某种原因,它们被垂直拉伸。
相关代码片段如下 -
ImageView 代码
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="3dp"
android:scaleType="centerCrop"
android:id="@+id/gridImage"/>
GridView 代码
<GridView
android:id="@+id/grid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numColumns="3"
android:scrollbars="vertical"
android:horizontalSpacing="5dp"
android:verticalSpacing="3dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/line" />
GridAdapter 代码
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
if(inflater==null)
inflater = (LayoutInflater) cx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(view == null)
view = inflater.inflate(R.layout.grid_item, null);
ImageView imageView = view.findViewById(R.id.gridImage);
Pictures p = pictures.get(i);
Glide.with(cx).load(p.getImageID()).centerCrop().placeholder(R.drawable.avatar).into(imageView);
return view;
}
我尝试了 ImageView 的所有 scaleType,但它们都没有使图像成为方形、居中裁剪并完美地适合 GridView。我在这里遗漏了什么吗?
答:
0赞
Sanjay
11/1/2023
#1
您可以使用众所周知的第三方库(如 picasso 或 glide)将图像加载到 ImageView 中,与本机加载相比,这非常容易。当我们将原生加载与 picasso/glide 进行比较时,原生加载有几个缺点,例如内存泄漏、复杂性和一致性。虽然您可以轻松地从 glide/picasso 中实现您想要的东西。
评论
0赞
Newbie_programmer
11/2/2023
图片是使用 Glide 加载的。这些图片实际上是Firebase数据库中的一些链接。我使用了一个适配器,在该适配器中,我在“Glide”中加载了这些 uri 链接以显示图片。
0赞
Sanjay
11/2/2023
如果您能提供更多的 java/Kotlin 代码,关于您如何设置 glide,那将会有所帮助。我使用此代码将裁剪图像居中“Glide.with(this).load(userData.results[0].picture.large).centerCrop().into(binding.ivImageGlide)”
0赞
Newbie_programmer
11/3/2023
请再次检查问题,我添加了 GridAdapter 代码片段。我也像你一样使用了 centerCrop,但它是一回事,垂直拉伸!
0赞
rv_5143
11/4/2023
#2
android:adjustViewBounds=“true” 或 android:scaleType=“fitXY” 有关视图,请参阅此处的输入链接说明
评论
0赞
Community
11/5/2023
您的答案可以通过额外的支持信息得到改进。请编辑以添加更多详细信息,例如引文或文档,以便其他人可以确认您的答案是正确的。您可以在帮助中心找到有关如何写出好答案的更多信息。
0赞
Newbie_programmer
11/5/2023
哪个视图?图像视图?我尝试了 ImageView 的 fitXY,但它不起作用。事实上,这让情况变得更糟。
1赞
rv_5143
11/6/2023
您是否在 ImageView 上尝试过 AdjustViewBounds 是的
0赞
Newbie_programmer
11/19/2023
哇!adjustviewbounds 确实有效!非常感谢。我一直在努力解决这个问题。请您按照社区机器人所说的细节编辑您的答案,以便我可以接受这个问题吗?@rv_5143
0赞
rv_5143
11/20/2023
看到它现在编辑了它是否有效//
评论