圖片放大縮小(和ViewPager配合使用流暢顯示)--第三方開源--PhotoView

ygfb 9年前發布 | 19K 次閱讀 PhotoView Android開發 移動開發

 

圖片放大縮小(和ViewPager配合使用流暢顯示)--第三方開源--PhotoView

圖片的放大縮小實現效果是使用的github上的一個開源項目photoView實現的,下載地址: https://github.com/chrisbanes/PhotoView

下面看測試代碼:

activity_main.xml:

<RelativeLayout xmlns:android="

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

</RelativeLayout></pre>

MainActivity.java:

package com.zzw.tetsphotoview;

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

import uk.co.senab.photoview.PhotoViewAttacher;

import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView;

public class MainActivity extends Activity { ViewPager mViewPager; List<ImageView> imageViews;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mViewPager = (ViewPager) findViewById(R.id.viewPager);
    mViewPager.setAdapter(new ImageAdapter(this));
}

class ImageAdapter extends PagerAdapter {
    Context context;
    int[] images;

    public void init() {
        imageViews = new ArrayList<ImageView>();
        images = new int[] { R.drawable.a, R.drawable.b, R.drawable.c, R.drawable.d };
        for (int i = 0; i < images.length; i++) {
            ImageView image = new ImageView(context);
            image.setImageResource(images[i]);

            //使圖片實現可以放大縮小的功能
            PhotoViewAttacher mAttacher=new PhotoViewAttacher(image);


            imageViews.add(image);


        }

// for (int i : images) { // ImageView image = new ImageView(context); // image.setImageResource(i); // imageViews.add(image); // } }

    public ImageAdapter(Context context) {
        this.context = context;
        init();
    }

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

    @Override
    public View instantiateItem(ViewGroup container, int position) {
        container.addView(imageViews.get(position));

        return imageViews.get(position);
    }

    @Override
    public int getCount() {
        return imageViews.size();
    }

    @Override
    public boolean isViewFromObject(View arg0, Object arg1) {
        return arg0 == arg1;
    }

}

}</pre>

 本文由用戶 ygfb 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!