1. 程式人生 > >Glide網路圖片滑動檢視,可縮放(PhotoView example)

Glide網路圖片滑動檢視,可縮放(PhotoView example)

需求是,介面中拿到的圖片地址List進行滑動檢視,並且可對圖進行縮放檢視,單張圖片載入使用Glide

實現:

使用 ViewPager滑動載入Fragment,Fragment佈局是一個PhotoView(extends ImageView)進行圖片載入和載入後的縮放

首先,引入PhotoView

    compile 'com.github.chrisbanes:PhotoView:2.1.3'

接著,我們的用於載入並實現圖片縮放的Fragment及其佈局

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.resource.drawable.GlideDrawable;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.GlideDrawableImageViewTarget;
import com.github.chrisbanes.photoview.PhotoView;
import com.github.chrisbanes.photoview.PhotoViewAttacher;

import cn.reschool.parent.R;

/**
 * Created by kLin 11509 on 9/14/2017.
 * email 
[email protected]
*/ public class PictureSlideFragment extends Fragment{ private String url; private PhotoViewAttacher mAttacher; private PhotoView imageView; public static PictureSlideFragment newInstance(String url) { PictureSlideFragment f = new PictureSlideFragment(); Bundle args = new Bundle(); args.putString("url", url); f.setArguments(args); return f; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); url = getArguments() != null ? getArguments().getString("url") : "http://www.zhagame.com/wp-content/uploads/2016/01/JarvanIV_6.jpg"; } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v=inflater.inflate(R.layout.fragment_picture_slide,container,false); imageView= (PhotoView) v.findViewById(R.id.iv_main_pic); mAttacher = new PhotoViewAttacher(imageView); Glide.with(getActivity()).load(url).crossFade().into(new GlideDrawableImageViewTarget(imageView) { @Override public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> animation) { super.onResourceReady(resource, animation); mAttacher.update(); } }); return v; } }

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
    <com.github.chrisbanes.photoview.PhotoView
        android:id="@+id/iv_main_pic"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

</LinearLayout>

下面是Activity當中的PagerAdapter,其中newInstance()方法載入的是介面加載出來的圖片URL
    private  class PictureSlidePagerAdapter extends FragmentStatePagerAdapter {

        public PictureSlidePagerAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            return PictureSlideFragment.newInstance(mValues.get(position).getDomain()+mValues.get(position).getImagePath());
        }

        @Override
        public int getCount() {
            return mValues.size();
        }
    }
        viewPager.setAdapter(new PictureSlidePagerAdapter(getSupportFragmentManager()));
        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                tvIndicator.setText(String.valueOf(position+1)+"/"+mValues.size());
            }

            @Override
            public void onPageSelected(int position) {
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
給我們的ViewPager設定Adapter就可以實現圖片的滑動載入,縮放

可以在頁面上寫一個TextView,通過ViewPager的OnPageChangeListener來標識載入的圖片頁碼。


相關推薦

Glide網路圖片滑動檢視PhotoView example

需求是,介面中拿到的圖片地址List進行滑動檢視,並且可對圖進行縮放檢視,單張圖片載入使用Glide 實現: 使用 ViewPager滑動載入Fragment,Fragment佈局是一個PhotoView(extends ImageView)進行圖片載入和載入後的縮放 首先

Highcharts 時間序列的圖表

一 程式碼 <html> <head> <meta charset="UTF-8" /> <title>Highcharts 時間序列,可縮放的圖表</title> <script src="http://apps.

AutoCAD2012從入門到精通中文視訊教程 第18課 點等分及檢視個人收藏

怎樣利用AutoCAD等分規則圖形? 然後可利用左側的繪圖工具繪製一個圓 怎樣利用AutoCAD等分規則圖形? 在選單欄中選擇“繪圖”工具,其下拉選單如下圖所示 怎樣利用AutoCAD等分規則圖形? 選擇“繪圖”下拉列表中的“點”,彈出下圖所示子選單 怎樣利用

實現圖片滑動驗證碼js外掛+後臺完整版

之前一直比較忙,最近也看到之前發的很多人問,現在我就提取出來發個簡化完整版的。 我後端採用python+flask+redis,簡易實現圖片驗證功能,如需複雜驗證,請記錄滑鼠拖動軌跡,後端實現分析,具體有興趣的朋友可以試試。 js外掛重要程式碼 /** * Creat

Python 讀取圖旋轉PIL, matplotlib

運用skimage.transform進行影象處理後,發現畫素數值在-1 與1 之間,然後減去資料RGB的均值(100左右),不可行。 1. PIL讀取,旋轉,縮放的操作 於是採用命令 import matplotlib.pyplot as plt   import numpy as np  

android圖片指定大小 drawable獲取圖片後怎麼設定圖片大小

http://gqdy365.iteye.com/blog/1125037 android圖片縮放(指定大小) private Drawable zoomDrawable(Drawable drawable, int w, int h) { in

Qt 實現在隱藏標題欄情況下視窗的未成功

呃,這是一個悲劇的版本,在這版本中,我按照網上大神的說法,試了一下,但是沒有效果,不知道出錯在了那裡,和昨天一樣,也是,沒有理想的效果,這裡貼上程式碼,記錄一下 資料連線:放評論 需要包含標頭檔案

特徵feature scaling

機會永遠留給有準備的人,不積跬步,無以至千里,厚積而薄發,與大家共勉!加油! 博主最近在學習吳恩達的機器學習課程,將一些日常學習本人認為重要的地方在此記錄,與大家分享,如有錯誤,請大家不吝賜教! gi

用DirectX實現魔方視角變換及附原始碼

在本系列第一篇介紹過滑鼠按鍵的功能,如下。 左鍵拖拽 - 旋轉魔方 右鍵拖拽 - 變換視角 滾輪 - 縮放魔方 今天研究一下如何實現後面兩個功能,用到的技術主要是Arcball,Arcball是實現Model-View-Camera的重要技術,這裡的旋轉基於Quaternion(四元數)來實現

C++——bmp影象插值

       本文要實現的功能是使用最近鄰插值以及雙線性插值完成bmp影象的縮放。1、最近鄰插值       不需要計算,在待求象素的四鄰象素中,將距離待求象素最近的鄰象素灰度賦給待求象素:                                           

Android 佈局手勢滑動檢視實現類似Imgview圖片效果

Android 自定義View 佈局手勢縮放,可滑動檢視,子View實現類似Imgview圖片縮放效果 自定義View,使用ViewDragHelper和ScaleGestureDetector結合簡單的實現類似PhotoView的效果的控制元件,使佈局內的子

wpf 顯示遠程圖片的Image

bsp bin eas tel borde med urn art ride using System; using System.Collections.Generic; using System.Linq; using System.Text; using

JS實例之圖片滑動效果實例圖片滑動進場

ava 圖片滑動 代碼 right adding pre -- lin parseint 1 <head> 2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&

QT中給各控件增加背景圖片(旋轉)的幾種方法

.net detail eight iou rotate art board 按鈕 previous 1. 給QPushButton 增加背景圖片:背景圖片可根據Button大小自由縮放。 [cpp] view plain copy vo

js實現移動端圖片預覽:手勢 手勢拖動雙擊放大...

在屏幕上 turn cit format 基礎上 set 邊距 點擊 點擊事件 前言本文將介紹如何通過js實現移動端圖片預覽,包括圖片的 預覽模式,手勢縮放,手勢拖動,雙擊放大等基本功能;

用d3.js對訊號處理的結果資料作圖得到互動的動態SVG圖

d3.js 有何用 D3.js is a JavaScript library for manipulating documents based on data. D3 helps you bring data to life using HTML, SVG, and CSS. D3’s

layui-圖片上傳使用選擇圖片->上傳圖片預覽圖片刪除圖片轉載

原文地址:https://gitee.com/AMortal/codes/qt8m6zk30u1g4evr95jhx13 <!DOCTYPE html> <html> <head> <meta

頁面多個圖片上傳刪除程式碼

頁面程式碼: 上傳圖片

JAVA 給圖片新增水印設定大小、位置、透明度

/******************************************************************************* * Description: 圖片水印工具類 * * @author xcwc1995 * @versi