浏览图片,点击放大liula

点击小图放大图片,就是把图片带到另一个页面进行放大浏览,

1.首先找到几张图片

2.在首页面加载一个RecyclerView 的布局控件 实现它的Adapter 让它以横向排列。在Adapter里面实现Itme的点击事件的实现方法,在Activity里面调用,点击跳转到另一个页面,需要传两个数据,图片的集合,和点击的图片位置。

mGrid = (RecyclerView) findViewById(R.id.rv);
girdAdapter = new RecyclerViewAdapter(this, imageIds);
mGrid.setLayoutManager(new GridLayoutManager(this, 3));
mGrid.setAdapter(girdAdapter);
girdAdapter.setOnItemClickListener(new RecyclerViewAdapter.OnItemClickListener() {
    @Override
    public void onItemClick(View view, int position) {
        Intent intent = new Intent(MainActivity.this, BrowserActivity.class);
        intent.putExtra("imgs", imageIds);
        intent.putExtra("pos", position);
        startActivity(intent);//选中图片  }
});

3.在另一个页面加载一个ViewPager来实现图片的滑动和显示图片,然后下面显示一个图片总个数和当前浏览的第几个图片


4.在代码中加载控件,设置ViewPagerde的PagerApapter在Adapter的instantiateItme方法里实现图片的显示

@Override
public Object instantiateItem(ViewGroup container, int position) {//必须实现  View view = LayoutInflater.from(context).inflate(R.layout.imageview,container,false);
    ImageView imageView = (ImageView) view.findViewById(R.id.img);
    imageView.setImageResource(imgs[position]);
    container.addView(view);
    return view;
}

5.吧ViewPager绑定Adapter实现ViewPager的滑动事件setOnPageChangeListener,来实现当前浏览的图片是第几张和义工的张数。

这是从上个页面传过来的数据在这页面就接收:

imgs = getIntent().getIntArrayExtra("imgs");
pos = getIntent().getIntExtra("pos", 0);
这是设置Adapter并且实现滑动事件显示个数
   imgAdapter = new ImgAdapter(this, imgs);
        mPager.setAdapter(imgAdapter);
        mPager.setCurrentItem(pos);//设置起始位置  mPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                mNum.setText((position + 1) + "/" + imgs.length);//显示当前图片的位置  }

            @Override
            public void onPageSelected(int position) {

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
这里简单的实现了一个浏览图片的功能