2013-10-23 28 views
1

我已經使用ViewPager創建了一個簡單的圖像庫。現在,它從可繪製文件夾中抓取圖像。我想讓ViewPager從URL加載圖像。小故障出現在適配器類setImageResource。它不會接受一個字符串變量。那麼如何調整代碼以便它可以接受字符串數組?我的代碼:在Android中從URL填充簡單的ViewPager圖庫

//--- Main Activity Class: 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.view.ViewPager; 
import android.view.View; 
import android.widget.Button; 

public class WCBCGallery51 extends Activity { 
Button back_BTN; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.gallery5_main); 
    back_BTN = (Button) findViewById(R.id.back_gal5_btn); 


    ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager); 
    WCBCGallery5Adapter adapter = new WCBCGallery5Adapter(this); 
    viewPager.setAdapter(adapter); 



}//--- END onCreate 

@Override 
protected void onPause() { 
    super.onPause(); 
    overridePendingTransition(R.anim.fadein, R.anim.fadeout); 
    // finish(); 
} 

} 

這裏的適配器類別:

//--- Adapter Class 
import android.content.Context; 
import android.support.v4.view.PagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ImageView; 

public class WCBCGallery51Adapter extends PagerAdapter { 
Context context; 
private int[] GalImages = new int[] { R.drawable.image01, 
     R.drawable.image02, R.drawable.image03, R.drawable.image04, 
     R.drawable.image25, R.drawable.image26, R.drawable.image27, 
     R.drawable.image28 }; 

String[] GalImagesStr = { 
     "http://www.website.com/images/image01.png", 
     "http://www.website.com/images/image02.png", 
     "http://www.website.com/images/image03.png", 
     "http://www.website.com/images/image04.png", 
     "http://www.website.com/images/image25.png", 
     "http://www.website.com/images/image26.png", 
     "http://www.website.com/images/image27.png", 
     "http://www.website.com/images/image28.png" }; 


WCBCGallery51Adapter(Context context) { 
    this.context = context; 
} 

@Override 
public int getCount() { 
    return GalImagesStr.length; 
} 

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

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    ImageView imageView = new ImageView(context); 
    int padding = context.getResources().getDimensionPixelSize(
      R.dimen.padding_medium); 
    imageView.setPadding(padding, padding, padding, padding); 
    imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
    //--- here's where the problem is: 
    imageView.setImageResource(GalImages[position]); 
    ((ViewPager) container).addView(imageView, 0); 
    return imageView; 
} 

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

回答

0

你要下載的圖像,並提供一個回調到視圖,因此圖像可以一次性下載完成放置。

檢查this示例。您可以在此下載完整的應用程序示例。