Android : Picasso 没有加载一些图像
Android : Picasso is not loading some images
我正在使用 Picasso 从服务器获取图像并在 viewpager 中显示,但是我遇到了一些奇怪的错误,我的一些图像没有显示,当我静态加载图像时它们显示但是当图像正在从服务器加载,其中一些消失了,尤其是在 3 之后。
这是我的ViewPagerAdapter.java:
public Object instantiateItem(final ViewGroup container, int position) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = layoutInflater.inflate(R.layout.viewpager_item, container, false);
/**
* Loading the image view
*/
// Locate the ImageView in viewpager_item.xml
ImageView sliderItem = (ImageView) itemView.findViewById(R.id.viewpagerImageView1);
// Capture position and set to the ImageView
/* if(requestCreatorListIterator.hasNext()) {
requestCreatorListIterator.next().into(sliderItem);
}*/
slider[position].into(sliderItem);
//sliderItem.setImageResource(slider[position]);
// Add viewpager_item.xml to ViewPager
((ViewPager) container).addView(itemView);
//
((ViewPager) container).addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
// skip fake page (first), go to last page
if (position == 0) {
((ViewPager) container).setCurrentItem(slider.length - 2);
}
// skip fake page (last), go to first page
if (position == slider.length - 1) {
((ViewPager) container).setCurrentItem(1); //notice how this jumps to position 1, and not position 0. Position 0 is the fake page!
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
终于找到解决办法了,Picasso 有一个问题,它使用延迟加载来获取图像,因为我在显示之前异步加载图像,所以无法加载所有图像。
解决方案 :: 使用 UIL (Universal Image Loader),解决了我所有的问题
我正在使用 Picasso 从服务器获取图像并在 viewpager 中显示,但是我遇到了一些奇怪的错误,我的一些图像没有显示,当我静态加载图像时它们显示但是当图像正在从服务器加载,其中一些消失了,尤其是在 3 之后。
这是我的ViewPagerAdapter.java:
public Object instantiateItem(final ViewGroup container, int position) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = layoutInflater.inflate(R.layout.viewpager_item, container, false);
/**
* Loading the image view
*/
// Locate the ImageView in viewpager_item.xml
ImageView sliderItem = (ImageView) itemView.findViewById(R.id.viewpagerImageView1);
// Capture position and set to the ImageView
/* if(requestCreatorListIterator.hasNext()) {
requestCreatorListIterator.next().into(sliderItem);
}*/
slider[position].into(sliderItem);
//sliderItem.setImageResource(slider[position]);
// Add viewpager_item.xml to ViewPager
((ViewPager) container).addView(itemView);
//
((ViewPager) container).addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
// skip fake page (first), go to last page
if (position == 0) {
((ViewPager) container).setCurrentItem(slider.length - 2);
}
// skip fake page (last), go to first page
if (position == slider.length - 1) {
((ViewPager) container).setCurrentItem(1); //notice how this jumps to position 1, and not position 0. Position 0 is the fake page!
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
终于找到解决办法了,Picasso 有一个问题,它使用延迟加载来获取图像,因为我在显示之前异步加载图像,所以无法加载所有图像。
解决方案 :: 使用 UIL (Universal Image Loader),解决了我所有的问题