图片放大缩小(和ViewPager配合使用流畅显示)--第三方开源--PhotoView

图片放大缩小(和ViewPager配合使用流畅显示)--第三方开源--PhotoView

图片的放大缩小实现效果是使用的github上的一个开源项目photoView实现的,下载地址: https://github.com/chrisbanes/PhotoView

下面看测试代码:

activity_main.xml:

 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent" >
 5 
 6     <android.support.v4.view.ViewPager
 7         android:id="@+id/viewPager"
 8         android:layout_width="match_parent"
 9         android:layout_height="match_parent" >
10     android.support.v4.view.ViewPager>
11 
12 RelativeLayout>

MainActivity.java:

 1 package com.zzw.tetsphotoview;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import uk.co.senab.photoview.PhotoViewAttacher;
 7 
 8 import android.app.Activity;
 9 import android.content.Context;
10 import android.os.Bundle;
11 import android.os.Handler;
12 import android.os.Message;
13 import android.support.v4.view.PagerAdapter;
14 import android.support.v4.view.ViewPager;
15 import android.view.View;
16 import android.view.ViewGroup;
17 import android.widget.ImageView;
18 
19 public class MainActivity extends Activity {
20     ViewPager mViewPager;
21     List imageViews;
22 
23     @Override
24     protected void onCreate(Bundle savedInstanceState) {
25         super.onCreate(savedInstanceState);
26         setContentView(R.layout.activity_main);
27         mViewPager = (ViewPager) findViewById(R.id.viewPager);
28         mViewPager.setAdapter(new ImageAdapter(this));
29     }
30 
31     class ImageAdapter extends PagerAdapter {
32         Context context;
33         int[] images;
34 
35         public void init() {
36             imageViews = new ArrayList();
37             images = new int[] { R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d };
38             for (int i = 0; i < images.length; i++) {
39                 ImageView image = new ImageView(context);
40                 image.setImageResource(images[i]);
41                 
42                 //使图片实现可以放大缩小的功能
43                 PhotoViewAttacher mAttacher=new PhotoViewAttacher(image);
44                 
45                 
46                 imageViews.add(image);
47            
48             
49             }
50 //            for (int i : images) {
51 //                ImageView image = new ImageView(context);
52 //                image.setImageResource(i);
53 //                imageViews.add(image);
54 //             }
55         }
56 
57         public ImageAdapter(Context context) {
58             this.context = context;
59             init();
60         }
61 
62         @Override
63         public void destroyItem(ViewGroup container, int position, Object object) {
64             container.removeView(imageViews.get(position));
65         }
66 
67         @Override
68         public View instantiateItem(ViewGroup container, int position) {
69             container.addView(imageViews.get(position));
70 
71             return imageViews.get(position);
72         }
73 
74         @Override
75         public int getCount() {
76             return imageViews.size();
77         }
78 
79         @Override
80         public boolean isViewFromObject(View arg0, Object arg1) {
81             return arg0 == arg1;
82         }
83 
84     }
85 
86 }

你可能感兴趣的:(其他)