2017-01-04 14 views

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^