2017-01-04 40 views
0

Capture.jpg不同对齐的gridview图像

我需要做这样的事情。它与交错gridview类似,但所有图像具有相同的维度。我该怎么做呢 ?

+0

看一看RecyclerView,特别RecyclerView.LayoutManager –

回答

1

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

首先获取屏幕宽度。

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