要创建具有固定大小图像的RecyclerView,并以裁剪为中心对内容和图像进行包装,可以按照以下步骤进行操作:
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="200dp"
android:layout_height="200dp"
android:clipToPadding="false"
android:padding="16dp"
/>
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> imageUrls;
public MyAdapter(List<String> imageUrls) {
this.imageUrls = imageUrls;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_image, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
String imageUrl = imageUrls.get(position);
Glide.with(holder.imageView.getContext())
.load(imageUrl)
.centerCrop()
.into(holder.imageView);
}
@Override
public int getItemCount() {
return imageUrls.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
ImageView imageView;
public ViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.imageView);
}
}
}
<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
/>
RecyclerView recyclerView = findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
List<String> imageUrls = Arrays.asList(
"https://example.com/image1.jpg",
"https://example.com/image2.jpg",
"https://example.com/image3.jpg"
);
MyAdapter adapter = new MyAdapter(imageUrls);
recyclerView.setAdapter(adapter);
这样,就创建了一个具有固定大小图像的RecyclerView,并以裁剪为中心对内容和图像进行包装。你可以根据实际需求修改布局、加载图片的方式以及RecyclerView的样式。
领取专属 10元无门槛券
手把手带您无忧上云