【发布时间】:2018-03-10 03:02:43
【问题描述】:
我有一个代码,其中图像将显示在 ViewPager 上,并且图像将来自服务器。我正在使用 Picasso 库,但是当我使用 Picasso 时,图像不会出现在 ViewPager 上。 Array IMAGES 具有我在加载方法中添加的图像 URL,请检查我的代码并向我提出问题。下面是 XML 和 java 代码
<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))
.error(R.drawable.girl)
.placeholder(R.drawable.loader_image)
.fit()
.centerCrop()
.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;
}
}
【问题讨论】:
-
为什么需要这个代码?
for(int i=0;i<IMAGES.size();i++) layoutInflater = LayoutInflater.from(context);是多余的,删除它 -
我还想在 ImagesView 上添加进度条,这就是我使用它的原因。
-
你能分享一下吗 Log.e("instantiateItem: ",IMAGES.get(position) );价值?
-
日志是 instantiateItem:: maangal.com/photos/…
标签: android