2017-09-28 1 views
0

진도 막대를 ViewPager에 추가해야하는 코드를 구현하고 싶습니다. 이미지가로드되지 않을 때까지 모든 페이징 진행률 표시 줄이 표시됩니다. 자세한 내용은 당신은 이미지가로드되지 않습니다 때까지 이미지가 내가 진행률 표시 줄을 추가 할로드하는 데 시간이 걸리는 서버 측 어디에서 오는 LinkViewPager가이 링크를 확인하실 수 있습니다모든 페이저에 대해 ViewPager에 진행 막대를 추가하는 방법

이 레이아웃 파일

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:padding="1dip" > 

<ImageView 
    android:id="@+id/image" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:adjustViewBounds="true" 
    android:layout_gravity="right|top" /> 

<ProgressBar android:id="@+id/progressBar" 
    android:progressDrawable="@drawable/loader_image" 
    android:layout_width="fill_parent" android:layout_height="8dip" 
    style="?android:attr/progressBarStyleHorizontal" 
    android:indeterminateOnly="false" 
    android:max="100"> 
</ProgressBar> 
입니다

public class SlidingImage_Adapter extends PagerAdapter { 
private ArrayList<String> IMAGES; 
private LayoutInflater layoutInflater; 
private Context context; 
ProgressBar progressBar; 
private ImageLoader imageLoader; 

public SlidingImage_Adapter(Context context, ArrayList<String> IMAGES) { 
    this.context = context; 
    this.IMAGES=IMAGES; 
    for(int i=0;i<IMAGES.size();i++) 
     layoutInflater = LayoutInflater.from(context); 
} 


@Override 
public Object instantiateItem(ViewGroup view, int position) { 
    // ImageView imageLayout = (ImageView) inflater.inflate(R.layout.screen_slide_fragment, view, false); 
    layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View item_view = layoutInflater.inflate(R.layout.screen_slide_fragment, view, false); 
    ImageView imageView = (ImageView) item_view.findViewById(R.id.image); 
    Log.e("instantiateItem: ",IMAGES.get(position)); 
    Picasso.with(context) 
      .load(IMAGES.get(position)) 
      .placeholder(R.drawable.loader_image) 
      .into(imageView); 

    return item_view; 
} 

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

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


@Override 
public boolean isViewFromObject(View view, Object object) { 
    return view.equals(object); 

} 

@Override 
public void restoreState(Parcelable state, ClassLoader loader) { 
} 

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

와서 이미지를로드하는 당신에게

+0

당신은 글라이드를 사용하여 무엇을 의미합니까 글라이드 @Vikas Godiyal –

+0

를 사용하여 달성 할 수있는이 추가 당신의 방법은

@Override public Object instantiateItem(ViewGroup view, int position) { ImageView imageLayout = (ImageView) inflater.inflate(R.layout.screen_slide_fragment, view, false); Picasso.with(context) .load(IMAGES.get(position)) .placeholder(R.drawable.loader_image) .into(imageLayout); return imageLayout; } 

과 같을 것이다 어떻게? –

+0

기본적으로 ViewPager에서 동시에 페이지를로드 할 때 그렇습니다. 다음으로 스 와이프하면 진행률 막대가 표시되지 않습니다. –

답변

1

사용 피카소 감사합니다 로더들

Picasso.with(context) 
     .load(imageUrl) 
     .fit() 
     .error(R.drawable.error_drawable) 
     .placeholder(R.drawable.loader_image) 
     .into(imageView); 

screen_slide_fragment.xml가 rootView으로 만 이미지 뷰를 포함해야 설정을 선택합니다.이 앱의 Gradle을 파일

compile 'com.squareup.picasso:picasso:2.5.2' 
+0

Picasso를 사용하는 것이 필수입니다. –

+0

Glide –

+0

다른 대안이 있습니다. 네트워크 이미지를 사용할 필요가 없습니다. 보기 –

관련 문제