Android第三方控件PhotoView使用方法详解

PhotoView的简介:

这是一个图片查看库,实现图片浏览功能,支持pinch(捏合)手势或者点击放大缩小。支持在ViewPager中翻页浏览图片。

PhotoView 是一款扩展自Android ImageView ,支持通过单点/多点触摸来进行图片缩放的智能控件。功能实用和强大。

PhotoView的功能:

图片浏览查看
双指缩放
单点触摸缩放
图片缩放模式设置

基本用法:
导入jar包,布局XML里设置PhotoView
将ImageView传入PhotoViewAttacher

代码演示:

使用 PhotoView进行网络图片和本地图片的加载,缩放和点击事件处理
布局文件中:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".MainActivity"
 android:orientation="vertical"
 > 

 <uk.co.senab.photoview.PhotoView
 android:id="@+id/iv_photo1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content" 

 />
 <uk.co.senab.photoview.PhotoView
 android:id="@+id/iv_photo2"
 android:layout_width="match_parent"
 android:layout_height="wrap_content" 

 /> 

</LinearLayout> 

MainActivity中:

public class MainActivity extends Activity {
 private PhotoView iv_photo1;
 private PhotoView iv_photo2; 

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 iv_photo1 = (PhotoView) findViewById(R.id.iv_photo1);
 iv_photo2 = (PhotoView) findViewById(R.id.iv_photo2);
// localImage();
 netImage(); 

 } 

/**
 * 加载本地图片
 *
 */
 private void localImage() {
// 加载本地图片,缩放处理
 try {
// 图片在asset目录中
 InputStream is = getAssets().open("photo2.jpg");
 Bitmap bm = BitmapFactory.decodeStream(is);
 iv_photo1.setImageBitmap(bm);
 } catch (IOException e) {
 e.printStackTrace();
 } 

 }
 /**
 * 加载网络图片
 */
 private void netImage() {
 ImageLoader loader = ImageLoader.getInstance();
 loader.displayImage("https://www.baidu.com/img/bdlogo.png", iv_photo2);
 iv_photo2.setOnPhotoTapListener(new OnPhotoTapListener() { 

 @Override
 public void onPhotoTap(View arg0, float arg1, float arg2) {
 Toast.makeText(MainActivity.this, "图片被点击了", 10).show();
 }
 }); 

 } 

}

BaseApplication中:

/**
 * 加载网络图片时,需要对ImageLoader进行全局配置
 *
 */ 

public class BaseApplication extends Application { 

 @Override
 public void onCreate() {
 super.onCreate();
 initImagloader(getApplicationContext());
 } 

 private void initImagloader(Context context) {
 File cacheDir = StorageUtils.getOwnCacheDirectory(context,
 "photoview/Cache");// 获取到缓存的目录地址
 // 创建配置ImageLoader(所有的选项都是可选的,只使用那些你真的想定制),这个可以设定在APPLACATION里面,设置为全局的配置参数
 ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
 context)
 // 线程池内加载的数量
 .threadPoolSize(3).threadPriority(Thread.NORM_PRIORITY - 2)
 .memoryCache(new WeakMemoryCache())
 .denyCacheImageMultipleSizesInMemory()
 .discCacheFileNameGenerator(new Md5FileNameGenerator())
 // 将保存的时候的URI名称用MD5 加密
 .tasksProcessingOrder(QueueProcessingType.LIFO)
 .discCache(new UnlimitedDiscCache(cacheDir))// 自定义缓存路径
 // .defaultDisplayImageOptions(DisplayImageOptions.createSimple())
 .writeDebugLogs() // Remove for release app
 .build();
 // Initialize ImageLoader with configuration.
 ImageLoader.getInstance().init(config);// 全局初始化此配置
 }
}

主清单配置文件中:

<uses-permission android:name="android.permission.INTERNET"/>
 <application
 android:name="com.zhhandroid.BaseApplication"
 android:allowBackup="true"
 android:icon="@drawable/ic_launcher"
 android:label="@string/app_name"
 android:theme="@style/AppTheme" >
 <activity
 android:name=".MainActivity"
 android:label="@string/app_name" >
 <intent-filter>
 <action android:name="android.intent.action.MAIN" /> 

 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
 </application>

需要导入的jar包:

photoview-library-1.2.2.jar
universal-image-loader-1.9.2_sources.jar

效果展示:

jar包及源码:下载

这个库里面上面库里面有bug,参考这个库

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android PhotoView使用步骤实例详解

    Android PhotoView使用步骤实例详解 1.步骤一:在布局文件中的代码: <uk.co.senab.photoview.PhotoView android:id="@+id/img_showimgview" android:layout_width="match_parent" android:layout_height="match_parent" /> 2.步骤二:进行找到控件的id photoview = (Phot

  • viewpager+photoview实现图片查看器

    本文实例为大家分享了Android实现图片查看器的具体代码,供大家参考,具体内容如下 效果需要两个手指禁止缩放,所以没有光标,只能用手机投放电脑上录制动态图片: demo中实用了一个第三方的photoview,非常简单实用:可实现图片双击放大,手势放大缩小,当手指离开屏幕时如果图片小于原图可自动恢复原图大小,可实现点击监听,长按图片监听: 整个demo非常简单,整体就是一个activity,页面布局只有一个viewpager和textview <RelativeLayout xmlns:andr

  • Android使用PhotoView实现图片双击放大单击退出效果

    本文实例为大家分享了PhotoView实现图片双击放大单击退出的具体代码,供大家参考,具体内容如下 实现思路 1.复制PhotoView  到libs下,然后进行添加小奶瓶 2.布局xml文件,添加PhotoView控件,src加载一张图片,就已经实现了放大缩小 3.Photoview设置点击事件,实现单击退出Activity 导jar包 compile files('libs/uk-co-senab-photoview.jar') 进行布局 <RelativeLayout xmlns:andr

  • photoView实现图片多点触控效果

    本文实例为大家分享了PhotoView实现图片多点触控效果展示的具体代码,供大家参考,具体内容如下 效果:点击后能够自由缩放.平移: 添加依赖: compile 'com.commit451:PhotoView:1.2.4' compile 'com.github.bumptech.glide:glide:3.5.2' 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:

  • Android第三方控件PhotoView使用方法详解

    PhotoView的简介: 这是一个图片查看库,实现图片浏览功能,支持pinch(捏合)手势或者点击放大缩小.支持在ViewPager中翻页浏览图片. PhotoView 是一款扩展自Android ImageView ,支持通过单点/多点触摸来进行图片缩放的智能控件.功能实用和强大. PhotoView的功能: 图片浏览查看 双指缩放 单点触摸缩放 图片缩放模式设置 基本用法: 导入jar包,布局XML里设置PhotoView 将ImageView传入PhotoViewAttacher 代码演

  • Android基础控件RadioGroup使用方法详解

    本文为大家分享了Android基础控件RadioGroup的使用,供大家参考,具体内容如下 1.简单介绍 RadioGroup可以提供几个选项供用户选择,但只能选择其中的一个.其下面可以横着或者竖着挂几个RadioButton,也可以挂载其他控件(如TextView).RadioGroup的相应事件一般不由下面的RadioButton响应,而是直接由RadioGroup响应.实现RadioGroup.OnCheckedChangeListener接口即可监听RadioGroup.RadioBut

  • Android重要控件SnackBar使用方法详解

    SnackBar是DesignSupportLibrary中的一个重要的控件,用于在界面下面提示一些关键信息,跟Toast不同的地方是SnackBar允许用户向右滑动消除它,同时,也允许在SnackBar中设定一个Action,当用户点击了SnackBar里面的按钮的时候,可以进行一些操作,所以,功能绝对是很强大的. SnackBar的构造: // 参数分别是父容器,提示信息,持续时间public static Snackbar make(@NonNull View view, @NonNull

  • Android常用控件ImageSwitcher使用方法详解

    图像切换器使用ImageSwitcher表示,用于实现类似于Windows操作系统下的"Windows照片查看器"中的上一张.下一张切换图片的功能.在使用ImageSwitcher时,必须实现ViewSwitcher.ViewFactory接口,并通过makeView()方法创建用于显示图片的ImageView对象.makeView()方法将返回一个显示图片的ImageView.在使用ImageSwitcher组件时,还有一个非常重要的方法,那就是setImageResource()方

  • android侧滑菜单控件DrawerLayout使用方法详解

    drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物.drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现). 使用步骤: 创建一个DrawerLayout 为了添加导航抽屉,你需要在你的布局界面中声明一个DrawerLayo

  • Android控件ListView使用方法详解

    Android控件ListView使用方法介绍,具体如下 一.ListView的简单用法 首先新建一个ListViewTest项目,并让Android Studio自动创建好活动.然后修改activity_main.xml中的代码,如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/re

  • Android Chronometer控件实现计时器函数详解

    本文为大家演示了如何使用Chronometer控件实现Android计时器的实例. 先贴上最终的实现效果图: Android计时器实现思路 使用Chronometer控件实现计器的操作.通过设置setBase(long base)来设置初始时间,然后为其添加一个 setOnChronometerTickListener(Chronometer.OnChronometerTickListener l)事件来判断时间是否到了,然后再调用其stop()方法实现停止计时. Android计时器实现代码

  • Android自带倒计时控件Chronometer使用方法详解

    公司的以前的项目,看到使用了这个Android自带的倒计时控件Chronometer,现在整合了一下 先看看效果: <Chronometer android:id="@+id/chronometer" android:layout_width="wrap_content" android:layout_height="30dp" /> <Button android:onClick="start" andro

  • Android垂直滚动控件ScrollView使用方法详解

    一.简介 二.方法 1)ScrollView垂直滚动控件使用方法 1.在layout布局文件的最外层建立一个ScrollView控件 2.在ScrollView控件中加入一个LinearLayout控件,并且把它的orientation设置为vertical 3.在LinearLayout控件中放入多个装有图片的ImageView控件 三.代码实例 1.效果图 2.代码 /Ex27ScrollView/src/fry/Activity01.java <?xml version="1.0&q

  • Android进度条控件progressbar使用方法详解

    一.简介 二.方法 1)进度条ProgressBar使用方法 1.在layout布局文件中创建ProgressBar控件 <ProgressBar style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:progress="30&

随机推荐