实现QQ空间图片预览效果

今天项目遇到需求 要求 实现图片预览效果 。  类似于扣扣空间那种,本人也到网上找过 代码量太大了   ,类多到处是注释看的有点恶心 。然后自己写了一个图片预览的效果,其实很简单的 。

首先我们来分析一下 实现原理 :点击 图片 显示 新的窗口  滑动显示下一张  并且页码也跟随的变化, 轻触退出(本文代码没有) ;首先点击图片实现跳转时应该 携带当前图片页码 呵呵 gridview 里所有图片 地址信息 ,然后另一个显示图片页面实现可以用viewpager  事先加载好 然后 设置显示当前页  至于页面显示 viewpager有个监听事件 用它跟换就行;不说废话了 上代码!

import android.os.Bundle;import android.support.v4.view.PagerAdapter;import android.support.v4.view.ViewPager;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;

import com.nostra13.universalimageloader.core.ImageLoader;import com.yusong.ycos.R;import com.yusong.ycos.wei_er.BaseActivity;import com.yusong.ycos.wei_er.config.AppConfig;import com.yusong.ycos.wei_er.view.DoubleScaleImageView;

import java.util.ArrayList;import java.util.List;

/** * Created by pcg on 2016/8/3. */public class ImagePreviewActivity extends BaseActivity implements ViewPager.OnPageChangeListener {

    private ViewPager viewPager;    private TextView textView;    private View view;    private List<View> viewList = new ArrayList<View>();    private int position;

    @Override    protected void onActivityCreate(Bundle savedInstanceState) {        setContentView(R.layout.picture_view_pager);        ((ImageView) findViewById(R.id.picture_back)).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                finish();//这是做的返回键退出            }        });        position = getIntent().getIntExtra("position", 0);        viewPager = (ViewPager) findViewById(R.id.view_pager);        textView = (TextView) findViewById(R.id.text_);       //添加view 也就是        for (int i = 0; i < ExceptionDetailActivity.list.size(); i++) {            view = LayoutInflater.from(this).inflate(R.layout.item_picture, null);            DoubleScaleImageView imageView = (DoubleScaleImageView) view.findViewById(R.id.picture_);//这个是自定义的image 实现双击放大缩小的  网上一大堆 没这需求直接 imageview            String url = AppConfig.getInstance().getIpAddress() + ExceptionDetailActivity.list.get(i).get(ExceptionDetailActivity.IMAGE);            ImageLoader.getInstance().displayImage(url, imageView);//用的是图片缓存框架  要的私信我 576975755 扣扣  网上也一大堆            viewList.add(view);        }        viewPager.setAdapter(new MyAdapter());        viewPager.setCurrentItem(position);//设置显示第几个 也就点击的图片        viewPager.setOnPageChangeListener(this);//页面滑动监听  用来改变页码的
//ExceptionDetailActivity.list.size() 这里是存储图片的 url 集合 list<Map<String,String>>
        textView.setText((position + 1) + "/" + ExceptionDetailActivity.list.size());    }

    class MyAdapter extends PagerAdapter {        @Override        public int getCount() {            return viewList.size();        }

        @Override        public boolean isViewFromObject(View view, Object object) {            return view == object;        }

        @Override        public void destroyItem(ViewGroup container, int position, Object object) {            container.removeView(viewList.get(position));        }

        @Override        public Object instantiateItem(ViewGroup container, int position) {            container.addView(viewList.get(position), 0);            return viewList.get(position);        }    }

    @Override    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override    public void onPageSelected(int position) {        //换页码        textView.setText((position + 1) + "/" + ExceptionDetailActivity.list.size());    }

    @Override    public void onPageScrollStateChanged(int state) {

    }}

//xml 代码
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/part_transparent">

    <android.support.v4.view.ViewPager        android:id="@+id/view_pager"        android:layout_width="match_parent"        android:layout_height="match_parent" />

    <TextView        android:id="@+id/text_"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true"        android:text="1/4"        android:textColor="@color/white"        android:textSize="16sp" />

    <RelativeLayout        android:layout_width="fill_parent"        android:layout_height="40dp">

        <ImageView            android:id="@+id/picture_back"            android:layout_width="50dp"            android:layout_height="match_parent"            android:padding="15px"            android:src="@drawable/back_click" />

        <TextView            android:id="@+id/tv_top"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_centerInParent="true"            android:text="异常图片"            android:textColor="#FFFFFF"            android:textSize="18sp" />    </RelativeLayout></RelativeLayout>

// item xml 代码
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">

    <RelativeLayout        android:id="@+id/relative"        android:layout_width="match_parent"        android:layout_height="match_parent">

        <com.yusong.ycos.wei_er.view.DoubleScaleImageView            android:id="@+id/picture_"            android:layout_width="match_parent"            android:layout_height="match_parent"            android:layout_centerVertical="true" />    </RelativeLayout>

</LinearLayout>

这只是少量数图片用起来挺66的   不知道多张图片 会怎么样  (不喜勿喷)!
时间: 2024-08-11 05:42:51

实现QQ空间图片预览效果的相关文章

jquery实现上传图片及图片大小验证、图片预览效果代码

jquery实现上传图片及图片大小验证.图片预览效果代码 上传图片验证 */ function submit_upload_picture(){     var file = $('file_c').value;     if(!/.(gif|jpg|jpeg|png|gif|jpg|png)$/.test(file)){            alert("图片类型必须是.gif,jpeg,jpg,png中的一种")        }else{      $('both_form')

Android 手势检测实战 打造支持缩放平移的图片预览效果(下)

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/39480503,本文出自:[张鸿洋的博客] 上一篇已经带大家实现了自由的放大缩小图片,简单介绍了下Matrix:具体请参考:Android 手势检测实战 打造支持缩放平移的图片预览效果(上):本篇继续完善我们的ImageView~~ 首先加入放大后的移动~~ 1.自由的进行移动 我们在onTouchEvent里面,加上移动的代码,当然了,必须长或宽大于屏幕才可以移动~~~ @Ov

使用Qt实现简单的图片预览效果 good

http://www.cnblogs.com/appsucc/archive/2012/02/28/2371506.html Qt之实现工具箱界面程序 http://www.cnblogs.com/appsucc/archive/2013/03/04/2942903.html#3406562

JavaScript 图片上传预览效果

图片上传预览是一种在图片上传之前对图片进行本地预览的技术.使用户选择图片后能立即查看图片,而不需上传服务器,提高用户体验.但随着浏览器安全性的提高,要实现图片上传预览也越来越困难.不过群众的智慧是无限的,网上已经有很多变通或先进的方法来实现.例如ie7/ie8的滤镜预览法,firefox 3的getAsDataURL方法.但在opera.safari和chrome还是没有办法实现本地预览,只能通过后台来支持预览.在研究了各种预览方法后,作为总结,写了这个程序,跟大家一起分享.上次写的简便无刷新文

webView图片点击可以实现预览效果

最近做项目遇到了webview加载后图片点击可以实现图片预览效果的需求. 如果要实现这个需求我们要保证webview和html是交互的否则我们加载的webview上面的图片是不能实现点击效果的.那么如何实现交互呢,其实很简单,我们只需要往调用的webview页面里加入一段js代码就可以了 一:我们创建一个js的方法: //创建JS - (NSString *)createJavaScript { NSString *js = @"var imgArray = document.getElemen

JS实现图片上传预览效果:方法一

<script type="text/javascript"> //处理file input加载的图片文件 $(document).ready(function(e) { //判断浏览器是否有FileReader接口 if(typeof FileReader =='undefined') { /*$("#images_show").css({'background':'none'}).html('亲,您的浏览器还不支持HTML5的FileReader接口

JS兼容各个浏览器的本地图片上传即时预览效果

很早以前 在杭州银行工作曾经碰到这么一个需求,当时也是纠结了很久,也是google了很久,没有碰到合适的demo,今天特意研究了下这方面的的问题,所以也就做了个简单的demo来实现 本地上传图片即时预览效果.其在标准浏览器(firefox,chrome,IE10等其他浏览器)用了HTML5中的内容实现图片即时预览效果.在IE10以下浏览器用了滤镜来解决图片显示问题.在看代码之前,先让我们来了解以下知识点: HTML5中的FileReader对象: FileReader对象主要是把文件读入内存中,

图片上传即时预览效果

做项目时一同事推荐的一个picload插件,实现图片上传后,即时预览效果,感觉很不错,分享出来. 点击上传图片后.立即看到预览的效果如下图: 布局代码: <div class="banner" id="CoupicPicYes">图片预览</div> <a class="input-file" href="javascript:void(0);" onclick="$('#photoUp

Java实现模拟QQ空间图片上传

Java实现模拟QQ空间图片上传 首先看效果: 首先编写我们的上传jsp代码,如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://