Pinterest, как пользовательский GridView
Я новичок в android, и я ищу логику для grid view, например pinterest (desktopcreen), которое было создано для i-phone. Большой нет. изображений поступает с сервера, который мне нужно показать в следующей форме с эффектом разбивки на страницы, или загрузкой изображений на прокрутке.
![image is here]()
ответьте если возможно другой способ вокруг. Я буду очень благодарен.
Ответы
Ответ 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 изображений на запрос), а когда пользователь прокручивается (заканчивается), загружайте больше.