我是靠谱客的博主 笑点低往事,这篇文章主要介绍PhotoView双击放大缩小图片,现在分享给大家,希望可以做个参考。

【原创 】

仿微信的个人相册,来回浏览个人图片和视频,其中图片时需要实现双击放大和缩小的。那么PhotoView完美解决这个问题。这里记录一下,写一个Studio的demo,我觉得每次去博客上找那些文章时,最想要的还是代码,设身处地的为同僚们着想,我还是写个简单的应用。方便大家参考和使用。

在grandle中导入photoView。

复制代码
1
compile 'com.commit451:PhotoView:1.2.4'

然后xml文件中使用,就行了。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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="com.abings.photoviewdemo.MainActivity"> <uk.co.senab.photoview.PhotoView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/a" /> </RelativeLayout>

这样放入一张图片就能放大缩小了。简单实用,大家会爱上它的。

这里在附上一个自定义的viewpager,一般都是photoview配上viewpager,然而不自定义的话,很容易产生冲突。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package com.example.csonezp.imagezoomdemo; import android.content.Context; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent; /** * Found at http://stackoverflow.com/questions/7814017/is-it-possible-to-disable-scrolling-on-a-viewpager. * Convenient way to temporarily disable ViewPager navigation while interacting with ImageView. * * shuwen */ /** * Hacky fix for Issue #4 and * http://code.google.com/p/android/issues/detail?id=18990 * <p/> * ScaleGestureDetector seems to mess up the touch events, which means that * ViewGroups which make use of onInterceptTouchEvent throw a lot of * IllegalArgumentException: pointerIndex out of range. * <p/> * There's not much I can do in my code for now, but we can mask the result by * just catching the problem and ignoring it. * * @author Chris Banes */ public class HackyViewPager extends ViewPager { private boolean isLocked; public HackyViewPager(Context context) { super(context); isLocked = false; } public HackyViewPager(Context context, AttributeSet attrs) { super(context, attrs); isLocked = false; } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { if (!isLocked) { try { return super.onInterceptTouchEvent(ev); } catch (IllegalArgumentException e) { e.printStackTrace(); return false; } } return false; } @Override public boolean onTouchEvent(MotionEvent event) { return !isLocked && super.onTouchEvent(event); } public void toggleLock() { isLocked = !isLocked; } public void setLocked(boolean isLocked) { this.isLocked = isLocked; } public boolean isLocked() { return isLocked; } }
使用这个viewpager,就能解决冲突问题。

附上git:

https://github.com/SingleShu/PhotoViewDemo


最后

以上就是笑点低往事最近收集整理的关于PhotoView双击放大缩小图片的全部内容,更多相关PhotoView双击放大缩小图片内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部