gridview图像具有不同的对齐方式

时间:2017-01-04 17:51:12

标签: android gridview staggered-gridview

Capture.jpg

我需要做这样的事情。它类似于交错的gridview,但所有图像都具有相同的尺寸。我该怎么做?

1 个答案:

答案 0 :(得分:1)

终于明白了。诀窍是使用spancount 2的交错网格视图,并使第二个和最后一个图像具有不同的高度,然后是所有其他图像。这是一个例子。

首先获得屏幕宽度。

 WindowManager wm = (WindowManager) activity.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    Point size = new Point();
    display.getSize(size);
    screenWidth = size.x;

现在在onBindViewHolder中设置图像。

 public void onBindViewHolder(final CustomRecycleViewHolder holder, final int position) {
    final Holder myHolder = (Holder) holder;
    BitmapFactory.Options opts = new BitmapFactory.Options();
    opts.inJustDecodeBounds = true;
    BitmapFactory.decodeFile(images.get(position), opts);
    opts.inJustDecodeBounds = false;
    int height;
    if (position == 1 || position == (images.size() - 1)) {
        height = 150;
    } else {
        height = 300;
    }
    Picasso.with(activity)
            .load(images.get(position))
            .error(R.drawable.ic_empty)
            .placeholder(R.drawable.ic_launcher)
            .resize(screenWidth / 2, height)
            .centerCrop()
            .into((myHolder.images));
}

结果

staggered-layout-manager.jpg