2012-03-13 40 views
13

Tôi mới sử dụng Android và tôi đang tìm kiếm một logic cho chế độ xem lưới như ứng dụng yêu thích (màn hình chính) đã được tạo cho i-phone. Một không lớn. hình ảnh đến từ máy chủ mà tôi cần hiển thị ở dạng sau với hiệu ứng phân trang tức là tải hình ảnh khi cuộn.Pinterest như tùy chỉnh GridView

image is here

vui lòng trả lời nếu có thể theo cách khác. Tôi sẽ rất biết ơn.

+0

Tôi đang gặp khó khăn để thích ứng với chế độ xem lưới với sở thích bố cục sử dụng trên ứng dụng iPhone. Bạn có bao giờ có thể sử dụng bố trí lưới hoặc bất kỳ sơ đồ bố cục nào khác để tạo một thứ gì đó tương tự như bố cục pinterest trên iPhone không? – rOrlig

+0

hello @Raj Kumar Yadav. bạn có thể giúp tôi không? bạn có nhận được đầu ra giống như hình ảnh trong Android không? –

Trả lời

3

Nếu bạn muốn thực hiện tải hình ảnh trên cuộn sau đó nó sẽ tương tự như Liệt kê View.First lưu tất cả dữ liệu từ WS URL sau đó tải theo yêu cầu Bây giờ

Commonsware Endless Adapter Đối với listview, bạn có thể tích hợp nó với GridView quá

EndLessAdapter

một cách khác là đặt quan điểm lưới của bạn trong một ViewFlipper và sau đó lật với một hình ảnh động.

Sử dụng setInAnimation() và setOutAnimation() để thiết lập các hình ảnh động và lật trang với showNext() và showPrevious()

0

Kiểm tra: Staggered GridView

Các StaggeredGridView cho phép người dùng tạo một GridView với không đồng đều các hàng tương tự như giao diện của Pinterest. Bao gồm OnItemClickListener và OnItemLongClickListener, bộ chọn và khôi phục vị trí cố định của riêng bạn.

3

Tạo bố trí giống như làm theo

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

Bây giờ thêm ImageView của bạn tự động trong bố trí

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

Đây là câu hỏi cũ, nhưng đối với những người có vấn đề tương tự:

Cách dễ nhất để hoàn thành kiểu bố cục này là sử dụng RecyclerView với StaggeredGridLayoutManager, như sau:

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

Đối với phần khác của câu hỏi (pagging), tốt nhất là bạn nên nhận hình ảnh theo khối (ví dụ 50 hình ảnh theo yêu cầu) và khi người dùng cuộn xuống (đến cuối) tải thêm.

Các vấn đề liên quan