gpt4 book ai didi

android - 我如何创建一个包含固定大小图像的 RecyclerView 来包装内容并且图像以裁剪为中心

转载 作者:太空宇宙 更新时间:2023-11-03 11:01:36 25 4
gpt4 key购买 nike

这是我想要的目标: enter image description here我想用 recyclerview 在 3 行中显示我的网格项目。我也有 dp 120dpx120dp 的固定图像大小。但我想让我的网格项目填充所有垂直空间,以便在 recyclerView 中没有空白区域。所以我将这个布局用于项目:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">

<android.support.v7.widget.CardView
android:id="@+id/view_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="vertical"
app:elevation="10dp">

<LinearLayout
android:id="@+id/image_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="vertical">

<ImageView
android:id="@+id/icon"
android:layout_width="120dp"
android:layout_height="120dp"
android:scaleType="centerCrop"/>

<ir.per.ttf.PersianTextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:ellipsize="end"
android:singleLine="true"
android:textSize="16sp"/>

</LinearLayout>

</android.support.v7.widget.CardView>

</LinearLayout

>

但我看到的是这样的,图像没有被裁剪中心!

enter image description here

但是通过将图像大小减小到 100dpx100dp,我的 RecyclerView 不会填充项目:

enter image description here

我无法达到我想要的 View 。

这是我使用适配器的方式:

 GridLayoutManager gridLayoutManager = new GridLayoutManager(context, 3,
LinearLayoutManager.VERTICAL, false);
gridLayoutManager.setReverseLayout(true);
holder.horizonrtalItemRecyclerView.setLayoutManager(gridLayoutManager);
RecyclerChambersAdapter recyclerAdapter = new RecyclerChambersAdapter(context, items.get(position),3); //pass context, Items and showing count
holder.horizonrtalItemRecyclerView.setAdapter(recyclerAdapter);

这是 onBind View 持有者:

 @Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
RecyclerChambersItemViewHolder holder = (RecyclerChambersItemViewHolder) viewHolder;
try {

holder.setmyClass(myClasses.get(position));
holder.setTitle(myClasses.get(position).getName());
holder.setId(myClasses.get(position).getId());
holder.setItemImageSrc(myClasses.get(position).getPhoto().getUrl().toString());

} catch (Exception ex) {
holder.setItemImageSrc("");
ex.printStackTrace();
}

}

最佳答案

我通过设置所有 width="match_parent" 更改网格项目解决了这个问题:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">

<android.support.v7.widget.CardView
android:id="@+id/view_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="vertical"
app:elevation="10dp">

<LinearLayout
android:id="@+id/image_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:orientation="vertical">

<ImageView
android:id="@+id/icon"
android:layout_width="match_parent"
android:layout_height="120dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:transitionName="@string/transition_avatar"
tools:ignore="ContentDescription"/>

<ir.per.ttf.PersianTextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:ellipsize="end"
android:singleLine="true"
android:textSize="16sp"
android:transitionName="@string/transition_title"
app:customTypeface="@string/primary_font"/>

</LinearLayout>

</android.support.v7.widget.CardView>

</LinearLayout>

现在我实现了我的 View ,并且项目填充了所有 recyclerview 空间和所有图像裁剪中心。

关于android - 我如何创建一个包含固定大小图像的 RecyclerView 来包装内容并且图像以裁剪为中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41519299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com