朋友圈一个简单的看图功能

原创 2016年05月30日 16:41:25

       最近做项目的时候有大图片,需要查看,怎么解决?

我想的是在一个页面里边使用一个ImageView就可以了,如果需要实现左右滑动的功能就监听一下滑动监听事件。嗯嗯,既然这么想了那就去做吧!

首先在页面中添加一个Imageview,然后监听屏幕的滑动事件(代码比较简单,贴出部分代码):

float x1;
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 拿到按下时的坐标
x1 = (int) event.getX();
break;
case MotionEvent.ACTION_UP:
// 拿到抬起的坐标
float moveX = x1 - event.getX();
// 左滑
if (moveX > 50) {
// 左边滑动-->判断当前图片在数组中的位置
if (index < LSharepicArr.length) {
index++;
myAdapter.notifyDataSetChanged();
} else {
T.shortToast(getApplicationContext(), "当前是最后一张图片");
}
}
// 右滑
else if (moveX < -50) {
// 右边滑动-->判断当前图片在数组中的位置
if (index > -1) {
index--;
myAdapter.notifyDataSetChanged();
} else {
T.shortToast(getApplicationContext(), "当前是第一张图片");
}
}
break;
}
return false;
}

运行一下,效果如下:



但是,理想很丰满,显示很骨感。在滑动的时候发现图片就在一瞬间就切换了,根本不给我这种反应慢的人留下思考的事件。唉,所以是不是应该考虑加点动画呢?但是好像又有点麻烦,还是用ViewPager来实现吧!

这个的实现思路也很简单:

1、首先我需要知道我应该创建多少个view,

2、然后再在view里边加一个imageview,所以就需要一个item布局。

3、在加载视图的时候把图片加到imageview里边。

实现起来也很简单,这里就不贴图片了。但是又有新的问题来了,我每次点击图片看大图的时候都是从第一张图片开始看,这很不爽啊!怎么解决?
让我传一个index进去,但是发现总是显示一张图片。然后就开始查viewpager的左右滑动的监听!发现无果,各种请教之后,发现viewPager还有一个setCurrentItem方法!

这个方法有啥作用呢?就是告诉viewpager我要把那个view放在第一张显示,然后其他的左右滑动的操作就不用自己来控制了,viewpager会当你实现的!谢谢爱调频的大叔的帮助!

效果图还和上边一样,具体代码如下:

public class ShejiaoShareShowPicActivity extends Activity {
int index;// 当前图片在数组中的位置
String LSharepicArr[];// 存放图片地址的数组
String LShareSmallPicArr[];// 存放缩略图的数组
private ViewPager pager;
String path = "";// 图片缓存地址
private ArrayList<View> myViews = new ArrayList<View>();
private MyAdapter myAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_shejiao_share_show_pic);
initView();
initDate();
path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/Qm";
}

private void initView() {
pager=(ViewPager)  this.findViewById(R.id.shejiao_share_showpic_img);
index = PublicStaticData.shejiaoShareLSharepicposition;// 当前选中的对象图片的位置
// 截取图片地址
LSharepicArr = PublicStaticData.shejiaoShareLSharepic.split(",");
LShareSmallPicArr = PublicStaticData.shejiaoShareLShareSmallPic
.split(",");
}
// 加载数据 
public void initDate() {
for (int i = 0; i < LSharepicArr.length; i++) {
View view =LayoutInflater.from(ShejiaoShareShowPicActivity.this).inflate(R.layout.shejiao_share_showpic_item,null); 
myViews.add(view);
}
myAdapter = new MyAdapter(myViews,LSharepicArr);
pager.setAdapter(myAdapter);
pager.setCurrentItem(index);
}


class MyAdapter extends PagerAdapter {
private ArrayList<View> myviews;
private String myLSharepicArr[];
public MyAdapter(ArrayList<View> views,String myLSharepicArr[]) {
super();
this.myviews = views;
this.myLSharepicArr = myLSharepicArr;
}
@Override
public int getCount() {
return myviews.size();
}
// 实例化选项卡
@Override
public Object instantiateItem(final ViewGroup container, int position) {
View myview = myviews.get(position);
ImageView imgImageView=(ImageView) myview.findViewById(R.id.asd_pic);
BitmapUtils bitmapUtils = new BitmapUtils(ShejiaoShareShowPicActivity.this, path);
bitmapUtils.display(imgImageView, myLSharepicArr[position]);
container.addView(myview);
return myview;
}
// 删除选项卡
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(myviews.get(position));
}
// 判断当前视图是否为返回的对象
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
}
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

简单仿微信朋友圈评论功能

  • 2015年11月05日 11:22
  • 1.04MB
  • 下载

安卓 仿微信朋友圈选择图片,拍照,大图预览,删除等功能

首先看一下基本的效果图: 1,GridView和加号的实现,直接上代码 布局文件: ...

二、H5全景图-朋友圈全景图-720°全景-VR ---- 项目简单分析

H5全景图-朋友圈全景图-720°全景-VR 之 项目简单分析

仿微信朋友圈回复功能

  • 2015年09月05日 21:04
  • 1.47MB
  • 下载

实现微信朋友圈图片自动排列功能

  • 2015年09月29日 17:32
  • 1.04MB
  • 下载

二、H5全景图-朋友圈全景图-720°全景-VR ---- 项目简单分析

原文地址:  http://blog.csdn.net/qq_24889075/article/details/51974204  http://www.jianshu.com/p/a1b8707e3...
  • mwb310
  • mwb310
  • 2016年11月08日 14:37
  • 1695

Android仿微信朋友圈发动态功能(相册图片多选)

http://blog.csdn.net/thunderrong/article/details/52237611 DEMO一共13个类 大约2000行代码,童鞋们耐心点看基本思路是: 1,首...

安卓类似朋友圈功能

  • 2016年03月03日 20:12
  • 4.58MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:朋友圈一个简单的看图功能
举报原因:
原因补充:

(最多只允许输入30个字)