2013-10-23 2 views
1

ViewPager를 사용하여 간단한 이미지 갤러리를 만들었습니다. 지금은 드로어 블 폴더에서 이미지를 가져옵니다. ViewPager가 URL에서 이미지를로드하게하고 싶습니다. 결함은 어댑터 클래스 setImageResource에 있습니다. 문자열 변수를 허용하지 않습니다. 그래서 어떻게 문자열 배열을 받아 들일 수 있도록 코드를 조정할 수 있습니까? 내 코드 :Android에서 간단한 ViewPager 갤러리에 URL을 입력하십시오.

//--- 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 예. 완전한 앱 예제를 다운로드 할 수 있습니다.

관련 문제