2012-03-13 79 views
13

我是新来的android,我正在寻找网格视图的逻辑,如pinterest(主屏幕)应用程序,已为我的手机构建。一个很大的没有。的图像来自服务器,我需要以分页效果的形式显示,即在滚动中加载图像。Pinterest喜欢自定义GridView

image is here

请回复,如果它是周围其他可能的方式。我会非常感谢。

+0

我正在努力使网格视图适应iPhone应用程序的布局pinterest使用。你是否曾经能够使用网格布局或其他布局方案来创建类似于iPhone上最有趣的布局? – rOrlig 2012-03-27 05:00:22

+0

你好@Raj Kumar Yadav。你能帮助我吗?你有没有在android中获得相同的图像输出? – 2012-11-23 05:34:43

回答

3

如果要执行上滚动图像的加载那么它将类似于List View.First拯救WS URL的所有数据,然后根据需求现在

Commonsware无尽适配器适用于列表视图加载,你可以用集成的GridView太

EndLessAdapter

另一种方法是把你的网格视图中ViewFlipper,然后用动画翻页。

使用setInAnimation()和setOutAnimation()设置的动画和翻转与showNext()和showPrevious()的页面

0

检查:Staggered GridView

的StaggeredGridView允许用户创建具有不均匀一个GridView类似于Pinterest外观的行。包括自己的OnItemClickListener和OnItemLongClickListener,选择器和固定位置恢复。

3

创建布局类似如下

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

现在动态地布局

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

这是老问题,添加您的ImageView,但对于那些有类似的问题:

最简单的方法完成这种布局风格是使用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); 
} 

对于问题的另一部分(分页),最好是以大块形式接收图像(例如,每个请求50张图像),并且当用户向下滚动(到最后)时加载更多。