设置ImageView的宽度以使用GridLayoutManager填充RecyclerView内的空白区域(保持纵横比)

问题描述 投票:2回答:5

我有RecyclerViewGridLayoutManger

RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.movie_posters_recycler_view);
recyclerView.setHasFixedSize(true);
mRecyclerView.setLayoutManager(new GridLayoutManager(getActivity(), 2));

每个RecyclerView的项目由以下布局表示

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ImageView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/movie_item_poster_image_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:adjustViewBounds="true" />

</FrameLayout>

目前我有这样的结果

我想做这个

android android-layout android-recyclerview gridlayoutmanager
5个回答
0
投票

用这个替换你的图像视图

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/movie_item_poster_image_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true" />

0
投票

请添加scaltype到您的适配器中的图像视图到fitxy


0
投票

看看这个答案:https://stackoverflow.com/a/26575808/4729523

您只需要保持图像的纵横比(3/4或9/16)。


0
投票

android:scaleType="fitXY"属性中使用ImageView应该在ImageView内拉伸图像。


0
投票
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <ImageView
        android:id="@+id/movie_thumbnail"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"
        android:adjustViewBounds="true"/>
</FrameLayout>

这应该工作

© www.soinside.com 2019 - 2024. All rights reserved.