2015-08-22 53 views
-7

我想實現viewpager。在我看來,尋呼機我需要顯示來自Rest API的圖像。請給我必要的建議和建議,以便我能夠成功。實現ViewPager以顯示來自服務器的圖像

+1

最重要的建議是谷歌它並閱讀儘可能多的東西,你需要自己建立一些東西。如果它不起作用,您可以在StackOverflow上發佈代碼和可能的錯誤並尋求幫助。 –

回答

1

首先你需要一個自定義viewpager適配器: 畢加索是一個很好的圖書館來加載圖像。我會給你的情況下,一個鏈接,你需要進一步的幫助理解它:http://square.github.io/picasso/

public class ViewPagerAdapter extends PagerAdapter { 
Context c; 
private List<String> _imagePaths; 
private LayoutInflater inflater; 

public ViewPagerAdapter(Context c, List<String> imagePaths) { 
    this._imagePaths = imagePaths; 
    this.c = c; 
} 

@Override 
public int getCount() { 
    return this._imagePaths.size(); 
} 

@Override 
public boolean isViewFromObject(View view, Object object) { 
    return view == (object); 
} 

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    ImageView imgDisplay; 

    inflater = (LayoutInflater) c 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View viewLayout = inflater.inflate(R.layout.pager_item, container, 
      false); 

    imgDisplay = (ImageView) viewLayout.findViewById(R.id.image); 

    Picasso.with(c).load(_imagePaths.get(position)).into(imgDisplay); 
    (container).addView(viewLayout); 

    return viewLayout; 
} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    (container).removeView((RelativeLayout) object); 

} 
} 

這是pager_item.xml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <ImageView 
     android:id="@+id/image" 
     android:layout_centerInParent="true" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
</RelativeLayout> 

從你的活動:

獲取列表中的網址後從休息:這是你要做的:

List<String> urls; 

public class MainPage extends Activity { 
public void onCreate(Bundle savedInstance) { 
    super.onCreate(savedInstance); 
    setContentView(R.layout.main_page); 
urls= new ArrayList<>(); 
    pager = (ViewPager) findViewById(R.id.pager); 
urls.add("www.image1.com"); 
urls.add("www.image2.com"); 
     pager.setAdapter(new ViewPagerAdapter(getApplicationContext(), urls)); 

} 
} 
+0

我應該在哪裏給圖像的URL列表? –

+0

R.id.pager在哪裏? –

+0

您在任務的後期執行中從剩餘客戶端獲取它們之後給出URL列表。 R.id.pager是查看尋呼機本身的活動的xml。如果你仍然無法弄清楚,我會編輯我的答案,但請嘗試。 –

相關問題