2017-01-04 47 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