52、图片缩放库 PhotoView

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

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

时间: 2024-10-14 21:02:46

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

JavaScript图片缩放库Zooming

Zooming 是一款纯 javascript 图片缩放库,主要特点有: 不依赖其他库,纯 JavaScript 实现,支持移动设备: 流畅的动画: 可缩放高清图像: 易于集成和定制. 查看演示

图片缩放时java.lang.IllegalArgumentException: pointerIndex out of range

06-03 20:45:24.143: E/AndroidRuntime(1230): FATAL EXCEPTION: main 06-03 20:45:24.143: E/AndroidRuntime(1230): java.lang.IllegalArgumentException: pointerIndex out of range 06-03 20:45:24.143: E/AndroidRuntime(1230): at android.view.MotionEvent.native

android关于图片缩放

网上有许多关于图片缩放的demo,本人都感觉不怎么好用,最近在github看到了 一个简单的支持多指缩放图片的Android View类 gesture-imageview (地址:https://github.com/jasonpolites/gesture-imageview),感觉还挺好用的,现在写个demo方便以后用于调用 第一步:添加库,推荐直接下载zip,导入工程后,直接将main里的com.polites.android包直接复制到自己的工程中,方便自己以后修改 第二步:由于我只需

Android图片剪裁库

最近利用一周左右的业余时间,终于完成了一个Android图片剪裁库,核心功能是根据自己的理解实现的,部分代码参考了Android源码的图片剪裁应用.现在将该代码开源在Github上以供大家学习和使用,地址:https://github.com/Jhuster/ImageCropper,效果如下所示: 我的大致计划是首先介绍一下这个库的用法,然后再写几篇文章介绍一下其中的一些原理和关键技术,希望对Android开发新手有所帮助. [特性] 支持通过手势移动和缩放剪裁窗口 支持固定剪裁窗口大小.固定

Glide 图片请求库(工具类)

Glide :Google推荐的图片加载库,专注于流畅的滚动,Github下载地址: https://github.com/bumptech/glide/releases/ 封装的工具类: import com.bumptech.glide.DrawableTypeRequest; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com

Android 一起来看看知乎开源的图片选择库

前言 在实际开发中,图片选择器一直都是必不可少的一个部分,不管是 QQ 头像的设置,还是发送一条装逼的微信朋友圈,都要用到图片选择器来给用户选择他们想要上传的图片,最近知乎开源了一款图片选择库 Matisse 简直美哭了,而且完全遵循 Android 交互设计规范,实在是很良心. 在开始正文之前,先欣赏一下这个图片选择器的效果 是不是感觉相当的简洁好看,反正我是这么认为的. 一.基本使用 1.导入相应的依赖库 Gradle: repositories { jcenter() } dependen

开发利器_ImageMagick.基于Linux命令行的图片缩放/编辑/格式转换?

简单介绍: ImageMagick是一系列的用于修改,加工图像的命令行工具,能够快速地使用命令行对图片进行操作,对大量的图片进行批处理,它能执行相当多操作,本文涉及的只是开发中常用的技能. 快速安装: yum -y install epel-release yum install -y ImageMagick ImageMagick-devel 格式转换: convert 1.png 1.jpg 缩放图像: convert 1.jpg -resize 499x 1.jpg 说明: ImageMa

UIScrollView-大图片展示 与图片缩放 Demo

一 大图片展示 #import "MJViewController.h" @interface MJViewController () { UIScrollView *_scrollView;//方但全局调用定义成成员变量 } @end @implementation MJViewController - (void)viewDidLoad { [super viewDidLoad]; // 1.创建UIScrollView UIScrollView *scrollView = [[U

php实现图片缩放功能类

http://www.poluoluo.com/jzxy/201312/255447.html <?php /** * Images类是一个图片处理类 * @package application.controllers * @since 1.0 */ class Images { /** * 缩放图片 * @param $source原图片 * @param $newfile新图片 * @param $pre缩放比例 */ public function thumn($source,$pre,