PhotoView的简介: 这是一个图片查看库,实现图片浏览功能,支持pinch(捏合)手势或者点击放大缩小。支持在ViewPager中翻页浏览图片。 PhotoView 是一款扩展自Android ImageView ,支持通过单点/多点触摸来进行图片缩放的智能控件。功能实用和强大。

PhotoView的功能: 图片浏览查看 双指缩放 单点触摸缩放 图片缩放模式设置。

Android PhotoView 的用法:

导入 photoview-library-1.2.2.jar 包,布局XML里设置PhotoView 将ImageView传入PhotoViewAttacher。

代码演示: 使用 PhotoView进行网络图片和本地图片的加载,缩放和点击事件处理。

【注】universal-image-loader-1.9.2_sources.jar  是加载网络图片的JAR包。

  1. <uk.co.senab.photoview.PhotoView
  2. android:id="@+id/iv_photo"
  3. android:layout_width="fill_parent"
  4. android:layout_height="wrap_content" />
  1. import android.app.Activity;
  2. import android.os.Bundle;
  3. import android.view.View;
  4.  
  5. //PhotoView控件
  6. import uk.co.senab.photoview.PhotoView;
  7. import uk.co.senab.photoview.PhotoViewAttacher;
  8. import uk.co.senab.photoview.PhotoViewAttacher.OnPhotoTapListener;
  9. // 加载网络图片库
  10. import com.nostra13.universalimageloader.core.ImageLoader;

  11. /**
  12. * 加载网络图片和本地图片 * PhotoView进行缩放处理
  13. */
  14. public class MainActivity extends Activity {
  15. private PhotoView iv_photo;
  16. private PhotoViewAttacher attacher;
  17. private ImageLoader loader;

  18. @Override
  19. protected void onCreate(Bundle savedInstanceState) {
  20. super.onCreate(savedInstanceState);
  21.  
  22. setContentView(R.layout.activity_main);
  23.  
  24. iv_photo = (PhotoView) findViewById(R.id.iv_photo);
  25. attacher = new PhotoViewAttacher(iv_photo);
  26. // 加载本地图片,缩放处理
  27. // try {
  28. // InputStream is = getAssets().open("photoview.jpg");
  29. // Bitmap bm = BitmapFactory.decodeStream(is);
  30. // iv_photo.setImageBitmap(bm);
  31. // } catch (IOException e) {
  32. // // TODO Auto-generated catch block
  33. // e.printStackTrace();
  34. // }
  35. // 加载网络图片
  36. loader = ImageLoader.getInstance();
  37. loader.displayImage("https://www.baidu.com/img/bdlogo.png", iv_photo);
  38. // 点击事件
  39. iv_photo.setOnPhotoTapListener(new OnPhotoTapListener() {
  40. @Override
  41. public void onPhotoTap(View arg0, float arg1, float arg2) {
  42. }
  43. });
  44. }
  45.  
  46. }
  1. 1 import java.io.File;
  2. import android.app.Application;
  3. import android.content.Context;
  4.  
  5. import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
  6. import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
  7. import com.nostra13.universalimageloader.cache.memory.impl.WeakMemoryCache;
  8. import com.nostra13.universalimageloader.core.ImageLoader;
  9. import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
  10. import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
  11. import com.nostra13.universalimageloader.utils.StorageUtils;
  12.  
  13. public class BaseApplication extends Application {
  14. @Override
  15. public void onCreate() {
  16. super.onCreate();
  17. initImagloader(getApplicationContext());
  18. }
  19.  
  20. private void initImagloader(Context context) {
  21. // 获取到缓存的目录地址
  22. File cacheDir = StorageUtils.getOwnCacheDirectory(context,
  23. "photoview/Cache");
  24. // 创建配置ImageLoader(所有的选项都是可选的,只使用那些你真的想定制)
  25. // 这个可以设定在APPLACATION里面,设置为全局的配置参数
  26. ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context)
  27. // 线程池内加载的数量
  28. .threadPoolSize(3).threadPriority(Thread.NORM_PRIORITY - 2)
  29. .memoryCache(new WeakMemoryCache())
  30. .denyCacheImageMultipleSizesInMemory()
  31. .discCacheFileNameGenerator(new Md5FileNameGenerator())
  32. // 将保存的时候的URI名称用MD5 加密
  33. .tasksProcessingOrder(QueueProcessingType.LIFO)
  34. .discCache(new UnlimitedDiscCache(cacheDir))// 自定义缓存路径
  35. // .defaultDisplayImageOptions(DisplayImageOptions.createSimple())
  36. .writeDebugLogs() // Remove for release app
  37. .build();
  38. // Initialize ImageLoader with configuration.
  39. // 全局初始化此配置
  40. ImageLoader.getInstance().init(config);
  41. }
  42. }
  1. <application
  2. android:name="com.jike.photoviewdemo.BaseApplication"
  3. 。。。>
  4. 。。。。。
  5. </application>
  1. <uses-permission android:name="android.permission.INTERNET"/>

下载地址:http://download.csdn.net/detail/androidsj/9278845

52、图片缩放库 PhotoView的更多相关文章

  1. 开源的图片查看库之PhotoView

    PhotoView是一个开源的图片查看库,可以实现图片的浏览,手势放大缩小等操作,以及支持在ViewPager中翻页浏览图片等功能.PhotoView使用简单,还可以对缩放模式进行设置, 其开源地址为 ...

  2. iOS开发UI篇—UIScrollView控件实现图片缩放功能

    iOS开发UI篇—UIScrollView控件实现图片缩放功能 一.缩放 1.简单说明: 有些时候,我们可能要对某些内容进行手势缩放,如下图所示 UIScrollView不仅能滚动显示大量内容,还能对 ...

  3. android关于图片缩放

    网上有许多关于图片缩放的demo,本人都感觉不怎么好用,最近在github看到了 一个简单的支持多指缩放图片的Android View类 gesture-imageview (地址:https://g ...

  4. Android图片剪裁库

    最近利用一周左右的业余时间,终于完成了一个Android图片剪裁库,核心功能是根据自己的理解实现的,部分代码参考了Android源码的图片剪裁应用.现在将该代码开源在Github上以供大家学习和使用, ...

  5. CSS实现图片缩放特效

    今天是感恩节,祝大家感恩节快乐哦!最近天冷了,大家注意保暖哟.下面一起看看小颖写的demo吧. html代码: <!DOCTYPE html> <html> <head& ...

  6. HTML5 图片缩放功能

    腾讯新闻上用的插件(xw.qq.com) 缩放插件scale.js (function(window, undefined) { var document = window.document, sup ...

  7. PHP图片裁剪_图片缩放_PHP生成缩略图

    在制作网页过程中,为了排版整齐美观,对网页中的图片处理成固定大小尺寸的图片,或是要截去图片边角中含有水印的图片,对于图片量多,每天更新大量图,靠人工PS处理是不现实的,那么有没有自动处理图片的程序了! ...

  8. UISlider显示进度(并且实现图片缩放)

    图片展示效果如下: 其他没什么好说的,直接上代码: RootView.h: #import <UIKit/UIKit.h> @interface RootView : UIView @pr ...

  9. Android图片缩放方法

    安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们 ...

随机推荐

  1. ios8设置application badge value

    在ios8中,直接设置application badge value会出错 [[UIApplication sharedApplication] setApplicationIconBadgeNumb ...

  2. PHP-PHP程序员的技术成长规划(By黑夜路人)

    按照了解的很多PHP/LNMP程序员的发展轨迹,结合个人经验体会,抽象出很多程序员对未来的迷漫,特别对技术学习的盲目和慌乱,简单梳理了这个每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定 ...

  3. java基础讲解01-----简单了解一下java

    2017-4-12(晚)  闲来无事,静静把自己了解的java,好好回忆一次.如果能帮助别人也好.会不断补充 java有关的书籍真的很多,我也不过多的介绍了. 1.什么是java 2.java的语言特 ...

  4. 全面进攻python之前回顾下自己近三个月的自学之路

    人生是在一直试错的过程中成长起来的.这句话貌似很有道理,但回顾了下自己近三个月python自学学习之路,又觉得自己对这句话又有了新的看法------行动之前必须要有正确的选择,这样做错了才能成长. 2 ...

  5. leetcode——Lowest Common Ancestor of a Binary Tree

    题目 Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. 思路 这一次 ...

  6. winfrom更新

    原理: 工具生成更新配置节xml放到文件服务器上,外网可访问: 能过本地配置文件与服务器配置文件日期属性对比及配置节版本与大小属性判断有无更新: 存在更新,将文件从服务器下载到客户端,并替换原程序重启 ...

  7. Laravel建站03--建立前台文章列表和文章详情

    经过了前面的开发环境搭建和数据库配置.git配置的准备工作以后,现在可以开始动作做点什么了. 先从简单的开始,那就先来个文章列表和详情页吧. 这期间可以学习到路由.建立model.controller ...

  8. FPGA大公司面试笔试数电部分,看看你会多少

    1:什么是同步逻辑和异步逻辑?(汉王) 同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系. 答案应该与上面问题一致 [补充]:同步时序逻辑电路的特点:各触发器的时钟端全部连接 ...

  9. redis源码学习_简单动态字符串

    SDS相比传统C语言的字符串有以下好处: (1)空间预分配和惰性释放,这就可以减少内存重新分配的次数 (2)O(1)的时间复杂度获取字符串的长度 (3)二进制安全 主要总结一下sds.c和sds.h中 ...

  10. iOS开发多线程篇 03 —线程安全

    iOS开发多线程篇—线程安全 一.多线程的安全隐患 资源共享 1块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源 比如多个线程访问同一个对象.同一个变量.同一个文件 当多个线程访问同一块 ...