Подтвердить что ты не робот

Pinterest, как пользовательский GridView

Я новичок в android, и я ищу логику для grid view, например pinterest (desktopcreen), которое было создано для i-phone. Большой нет. изображений поступает с сервера, который мне нужно показать в следующей форме с эффектом разбивки на страницы, или загрузкой изображений на прокрутке.

image is here

ответьте если возможно другой способ вокруг. Я буду очень благодарен.

4b9b3361

Ответ 1

Если вы хотите выполнить загрузку изображения на прокрутке, он будет похож на представление списка. Сначала сохраните все данные из URL-адреса WS, затем загрузите по требованию. Теперь

Бесконечный адаптер Commonsware для Listview, вы можете интегрировать его с GridView тоже

EndLessAdapter

Еще один способ - разместить ваши представления сетки в ViewFlipper, а затем перевернуть анимацию.

Используйте setInAnimation() и setOutAnimation(), чтобы настроить анимацию и перевернуть страницы с помощью showNext() и showPrevious()

Ответ 2

Создайте макет, как показано ниже.

<ScrollView...>
<LinearLayout....
   android:id="@+id/linear1"
   orientation="horizontal">

   <LinearLayout....
     android:id="@+id/linear2"
     android:layout_weight="0.33"
     orientation="vertical">

   <LinearLayout....
     android:id="@+id/linear3"
     android:layout_weight="0.33"
     orientation="vertical">

   <LinearLayout....
     android:layout_weight="0.33"
     orientation="vertical">

</LinearLayout>
</ScrollView>

Теперь добавьте свой ImageView динамически в макеты

linear1 = (LinearLayout) findViewById(R.id.linear1);
linear2 = (LinearLayout) findViewById(R.id.linear2);
linear3 = (LinearLayout) findViewById(R.id.linear3);

for(int i=0;i<n;i++)
{
   ImageView iv = new ImageView(this);
   iv.setImageResource(R.id.icon);

   int j = count % 3;  <---- 
   if(j==0)
       linear1.addView(iv);
   else if(j==1)
       linear2.addView(iv);
   else
       linear3.addView(iv); 
}

Ответ 3

Отметьте: Разнесенный GridView

StaggeredGridView позволяет пользователю создавать GridView с неравными строками, похожими на то, как выглядит Pinterest. Включает собственный OnItemClickListener и OnItemLongClickListener, селектор и исправление с фиксированной позицией.

Ответ 4

Это старый вопрос, но для тех, у кого есть аналогичная проблема:

Самый простой способ выполнить этот стиль макета - использовать RecyclerView с StaggeredGridLayoutManager, например:

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_activity);

    View recyclerView = findViewById(R.id.recycle_view);
    assert recyclerView != null;
    StaggeredGridLayoutManager gaggeredGridLayoutManager = new      
    StaggeredGridLayoutManager(2, 1);
        recyclerView.setLayoutManager(gaggeredGridLayoutManager);
}

Для другой части вопроса (pagging) лучше всего получить ваши изображения в кусках (например, 50 изображений на запрос), а когда пользователь прокручивается (заканчивается), загружайте больше.