这个项目是Imageloader加上viewpager打造的图片浏览器,不熟悉imageloader的同学,请先去了解下,下面是示例图:
1、首先是对图片uri的数据的初始化和对imageloader的初始化。
private void init() {
// TODO Auto-generated method stub
context = this;
title = (TextView) findViewById(R.id.textView1);
progressBar1 = (ProgressBar) findViewById(R.id.progressBar1);
viewpager = (ViewPager) findViewById(R.id.viewpager);
adapter = new Mypager();
viewpager.setAdapter(adapter);
for (int i = 0; i < photoUri.size(); i++) {
ImageView im = new ImageView(context);
im.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
view.add(im);
loader.displayImage(photoUri.get(i), im,
new ImageLoadingListener() {
@Override
public void onLoadingStarted(String arg0, View arg1) {
// TODO Auto-generated method stub
progressBar1.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String arg0, View arg1,
FailReason arg2) {
// TODO Auto-generated method stub
progressBar1.setVisibility(View.GONE);
}
@Override
public void onLoadingComplete(String arg0, View arg1,
Bitmap arg2) {
// TODO Auto-generated method stub
progressBar1.setVisibility(View.GONE);
}
@Override
public void onLoadingCancelled(String arg0, View arg1) {
// TODO Auto-generated method stub
progressBar1.setVisibility(View.GONE);
}
});
}
//更新adapter中的数据
adapter.changData(view);
title.setText(1 + "/" + view.size());
viewpager.setCurrentItem(0);
} 在for循环中加入imageview,标识我们需要显示的图片数。
2、接着在OnPageChangeListener显示图片的页数。
private void viewpagerListener() {
// TODO Auto-generated method stub
viewpager.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
// TODO Auto-generated method stub
title.setText((arg0 + 1) + "/" + view.size());
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
}3、最后在adapter显示下图片就可以了。用法基本和baseadapter差不多。
public class Mypager extends PagerAdapter {
ArrayList<View> view = null;
public Mypager() {
view = new ArrayList<>();
}
public void changData(ArrayList<View> view) {
this.view = view;
notifyDataSetChanged();
}
// 获取窗图体数
@Override
public int getCount() {
// TODO Auto-generated method stub
return view.size();
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0 == arg1;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// TODO Auto-generated method stub
((ViewPager) container).addView(view.get(position));
return view.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
((ViewPager) container).removeView(view.get(position));
}
}好了,是不是很简单,你也可以打造自己的图片浏览器了。下面是代码,需要的同学可以自行下载。 <a target=_blank href="http://download.youkuaiyun.com/detail/cb2525800/8574973">点我下载</a>
本文介绍了一种使用Imageloader和ViewPager创建图片浏览器的方法。通过初始化图片URI数据和Imageloader,配合ViewPager进行图片展示,并实现了图片加载进度提示。此外,还介绍了如何监听页面变化来显示当前图片的页数。
175

被折叠的 条评论
为什么被折叠?



