浏览图片,点击放大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) { } });这里简单的实现了一个浏览图片的功能