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);
}
}