2012-03-13 14 views
13

Jestem nowy dla Androida i szukam logiki dla widoku siatki, takiego jak aplikacja pinterest (homescreen), która została zbudowana dla i-phone. Duży nie. obrazów pochodzi z serwera, który muszę pokazać w następującej formie z efektem paginacji, tj. ładowanie obrazów podczas przewijania.Pinterest jak niestandardowy GridView

image is here

odpowiedz czy jest możliwe odwrót. Będę bardzo wdzięczny.

+0

Staram się dostosować widok siatki do układu zastosowań pinterest na aplikacji na iPhone'a. Czy kiedykolwiek byłeś w stanie użyć układu siatki lub dowolnego innego schematu układu, aby stworzyć coś podobnego do układu tekstu na iPhonie? – rOrlig

+0

hello @Raj Kumar Yadav. czy możesz mi pomóc na to samo? czy otrzymałeś wyjście jako ten sam obraz w systemie Android? –

Odpowiedz

3

Jeśli chcesz wykonać ładowanie obrazu na zwoju to będzie podobny do listy View.First zapisać wszystkie dane z WS URL następnie załadować na żądanie Teraz

Commonsware Kompletne adapter do ListView, można zintegrować go z GridView zbyt

EndLessAdapter

Innym sposobem jest umieszczenie swoich poglądów siatki w ViewFlipper a następnie odwrócić z animacją.

Zastosowanie setInAnimation() i setOutAnimation(), aby ustawić animacje i przerzucanie stron z showNext() i showPrevious()

0

Sprawdź: Staggered GridView

StaggeredGridView pozwala użytkownikowi na tworzenie GridView z nierówna wiersze podobne do wyglądu Pinteresta. Zawiera własny OnItemClickListener i OnItemLongClickListener, selektor i przywracanie o ustalonej pozycji.

3

Tworzenie układ podobny jak postępować

<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> 

Teraz dodać ImageView dynamicznie w układach

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); 
} 
0

To jest stary pytanie, ale dla tych, którzy mają podobny problem:

Najprostszym sposobem osiągnąć ten styl układu jest użycie RecyclerView z StaggeredGridLayoutManager, tak jak to:

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); 
} 

W przypadku drugiej części pytania (pagging) najlepiej jest odbierać obrazy w porcjach (na przykład 50 obrazów na żądanie), a gdy użytkownik przewinie w dół (dochodzi do końca), ładuje więcej.