3

下面顯示了我正在查找的圖像。目前我正在使用查看傳呼機&圈指標。在查看頁面中,它只顯示單個圖像。將3幅圖像動態插入水平滾動視圖或Viewpager

我想在一個viewpager中顯示三張圖片,如圖所示。當我滑動該頁面時,又有三個不同的圖像以下面的文本加載到服務器上。這個怎麼做?任何關於這個或任何其他方式來實現這個想法?

我的代碼如下所示。

我添加一些XML佈局在這裏:homespizzaview.xml

<LinearLayout 
     android:id="@+id/linearLayoutbutton" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dip" > 

    <android.support.v4.view.ViewPager 
    android:id="@+id/pagerMenu" 
    android:layout_width="0dip" 
    android:layout_height="100dip" 
    android:layout_weight="1" 
    android:layout_marginLeft="10dip" 
    android:layout_marginRight="10dip"> 

      </android.support.v4.view.ViewPager> 
    </LinearLayout> 


    <RelativeLayout 
    android:id="@+id/relativeLayoutDot1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dip"> 
    <com.viewpagerindicator.CirclePageIndicator 
    android:id="@+id/indicatorMenu" 
    android:layout_width="fill_parent" 
    android:layout_height="25dip" 
    android:layout_marginLeft="10dip" 
    android:layout_marginRight="10dip" 
    android:padding="10dip" /> 

</RelativeLayout> 

HomeView的.java

public class HomeView extends Activity { 

    adaptermenu = new MenuPagerAdapter(); 
    pagerMenu = (ViewPager)findViewById(R.id.pagerMenu); 
    pagerMenu.setAdapter(adaptermenu); 
    pagerMenu.setCurrentItem(0); 
    pagerMenu.setOffscreenPageLimit(adapter.getCount()); 
    pagerMenu.getAdapter().notifyDataSetChanged(); 
    pagerMenu.setPageMargin(15); 

    indicator = (CirclePageIndicator)findViewById(R.id.indicatorMenu); 
    indicator.setViewPager(pagerMenu); 

    final float density1 = getResources().getDisplayMetrics().density; 
    indicator.setRadius(5 * density1); 
    indicator.setPageColor(0xFF000000); 
    indicator.setFillColor(0xFF888888); 
    indicator.setStrokeWidth(2 * density1); 

    //We set this on the indicator, NOT the pager 
    indicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {    
     @Override 
     public void onPageSelected(int position) { 
     // Toast.makeText(HomeSpizzaView.this, "Changed to page " + position, Toast.LENGTH_SHORT).show(); 
      pagerMenu.setCurrentItem(position, false);    
     } 
     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
     } 
     @Override 
     public void onPageScrollStateChanged(int state) {    
     } 
    }); 

    indicator.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      pagerMenu.setCurrentItem(0); 
      Log.i("", "getCurrentItem"+ mPager.getCurrentItem()); 
      pagerMenu.getAdapter().notifyDataSetChanged(); 
     } 
    }); 

     } 
    } 

MenuPagerAdapter.java

public class MenuPagerAdapter extends PagerAdapter { 


public int getCount() { 
    return 3; 
} 

public Object instantiateItem(View collection, int position) { 

    ImageView image = new ImageView(collection.getContext()); 
    image.setPadding(20, 0, 20, 0);  
    int resId = 0; 
    switch (position) { 
    case 0: 
     resId = R.drawable.promotion1; 
     break; 
    case 1: 
     resId = R.drawable.promotion2; 
     break; 
    case 2: 
     resId = R.drawable.promotion3; 
     break; 
    } 
    image.setImageResource(resId); 
    ((ViewPager) collection).addView(image, 0); 

    return image; 
} 

@Override 
public void destroyItem(View arg0, int arg1, Object arg2) { 
    ((ViewPager) arg0).removeView((View) arg2); 

} 

@Override 
public boolean isViewFromObject(View arg0, Object arg1) { 
    return arg0 == ((View) arg1); 

} 

@Override 
public Parcelable saveState() { 
    return null; 
} 
} 

這裏是更新的代碼是顯示單個圖像視圖機智h在textview下面。我正在尋找動態圖像& text ..手段在1查看分頁器3圖像與3文本..目前其顯示1圖像視圖與下面的文本..我正在尋找3個圖像在單viewpager ..如果我添加線性佈局它顯示3張圖片。但我添加相對佈局顯示單個圖像..任何想法我做了什麼MISTIKE。

public Object instantiateItem(View collection, int position) { 

    RelativeLayout lLayout;  
    RelativeLayout.LayoutParams relativeLayout; 

    lLayout = new RelativeLayout (collection.getContext()); 
     relativeLayout = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT); 

     for (int i = 0; i < 3; i++) { 
      image = new ImageView(collection.getContext()); 
      image.setPadding(20, 0, 20, 0); 
      image.setId(1); 
      int res = 0; 
      switch (0) { 
      case 0: 
       res = R.drawable.menu_antipasti;   
       break; 
      case 1: 
       res = R.drawable.menu_combos; 
       break; 
      case 2: 
       res = R.drawable.menu_drinks; 
       break; 
      }     
      image.setImageResource(res); 
      lLayout.addView(image); 

      textview = new TextView(collection.getContext()); 
      textview.setTextColor(Color.BLACK); 
      textview.setId(2); 
      textview.setText("pizza"); 
      textview.setPadding(60, 0, 20, 0); 
      relativeLayout.addRule(RelativeLayout.BELOW, image.getId()); 
      lLayout.addView(textview, relativeLayout); 
     } 

     ((ViewPager) collection).addView(lLayout, 0); 
     return lLayout; 
    } 

回答

2

現在你從instantiateItem方法返回ImageView。如果你想在1頁上有3張圖片,你需要創建佈局,放置3張圖片並返回。例如:

public Object instantiateItem(View collection, int position) { 
    LinearLayour images = new LinearLayout(collection.getContext()); 
    for (int i = 0; i < 3; i++) { 
     ImageView image = new ImageView(collection.getContext()); 
     image.setPadding(20, 0, 20, 0);  
     images.addView(image); 
     int res = someResource depending on i and position. 
     image.setImageResource(res); 
    } 

    ((ViewPager) collection).addView(images, 0); 
    return images; 
} 
+0

非常感謝你的友善幫助.. – raki

+0

更新了下面的代碼..我不是很好的android和新的這個領域。在此先感謝 – raki

+0

如果我添加LinearLayout其顯示3視圖尋呼機中的圖像,但如果我添加相對佈局,它只顯示單個圖像..任何想法我做錯mistike ..下面是我的工作代碼與單個圖像下面一個texview如上面的圖像。 – raki