GridLayoutManager相同图像大小

时间:2016-09-20 02:06:38

标签: java android xml android-recyclerview

我正在试验if (subscription != null && !subscription.isUnsubscribed()) { subscription.unsubscribe(); } RecyclerView

我最终想要显示尺寸与此类似的图像,如果可能的话甚至是正方形:

enter image description here

使GridLayoutManager成为可能的元素是什么?我是否修改了用于填充GridLayoutManager

的单个项目XML

2 个答案:

答案 0 :(得分:2)

首先,您必须将ImageView子类化为如下:

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ImageView;


public class MyImageview extends ImageView {
    public MyImageview (Context context) {
        super(context);
    }

    public MyImageview (Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyImageview (Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
     }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth()); // Snap to
        // width
    }
}

在XML文件中使用此文件。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.app.MyImageview 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/imageBackground"
        android:scaleType="centerCrop"/>

</LinearLayout>

确保MyImageView身高和宽度必须为match_parent

答案 1 :(得分:0)

如果你使用Picaso,那么下面的用户可以顺利使用:

Picasso.with(mContext)
            .load(mUri)
            .placeholder(R.drawable.ic_loading_animated)
            .fit()
            .centerCrop() // resizing images can really distort the aspect ratio, prevent this
            .into(mImageView)