我是靠谱客的博主 坚定热狗,最近开发中收集的这篇文章主要介绍android 长按缩放拖动_GitHub - yongjianx/ScaleImageView: android图片缩放库,支持单击、双击、长按、拖拽、多点触控缩放...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ScaleImageView

v1.1

android图片缩放库,支持单击、双击、长按、拖拽、多点触控缩放

基于-PhotoView实现,并在PhotoView的基础上做了改进,比如允许图片偏离x方向边界,手指抬起时回弹。

为方便大家学习,我仓库上的PhotoView源码我作了详细注释.

使用方法:

将以下内容添加到根目录下的build.gradle(注意:不是module:app下的build.gradle)

allprojects {

repositories {

maven { url "https://jitpack.io" }

}

}

然后将库依赖添加到module:app目录下的build.gradle

dependencies {

implementation 'com.github.yongjianx:ScaleImageView:v1.0'

}

使用示例

单张图片使用示例

定义xml文件

android:id="@+id/imageView"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@color/colorBackground"/>

在activity中

imageView = (ScaleImageView) findViewById(R.id.imageView);

try {

getBitmapForImgResourse(this, R.drawable.image, imageView);

}

catch (IOException e){

e.printStackTrace();

}

getBitmapForImgResourse(this, R.drawable.image, imageView);加载大图片时防止OOM

也可以使用图片加载框架--Glide

ViewPager多张图片浏览

有一些ViewGroups(利用onInterceptTouchEvent())的ViewGroups)在将ScaleImageView放入其中时可能会抛出IllegalArgumentException异常,比如ViewPager。为了防止此异常,请使用自定义ViewPager捕获异常.

public class MyViewPager extends ViewPager {

public MyViewPager(Context context) {

super(context);

}

public MyViewPager(Context context, AttributeSet attrs) {

super(context, attrs);

}

@Override

public boolean onInterceptTouchEvent(MotionEvent ev) {

try {

return super.onInterceptTouchEvent(ev);

} catch (IllegalArgumentException e) {

e.printStackTrace();

return false;

}

}

}

然后, 在PagerAdapter的instantiateItem()方法中添加以下内容

ScaleImageView view = new ScaleImageView(container.getContext());

view.setIsViewPager(true);//标识ViewGroup为ViewPager,处理滑动冲突

最后,在activity中设置ViewPager的适配器

viewPager = (MyViewPager) findViewById(R.id.viewPager);

viewPager.setAdapter(new ViewPagerAdapter());

具体可参考app/src/main/java/com/example/skyworthclub/imagescale/ViewPagerActivity.java的实现.

关于API

//设置初始图片的尺寸,不调用此方法时初始值由初始加载图片时计算出来

public void setInitScale(float initScale){

attacher.setInitScale(initScale);

}

public void setMidScale(float midScale){

attacher.setMidScale(midScale);

}

//设置缩放图片的最大尺寸,默认为3*初始图片的尺寸

public void setMaxScale(float maxScale){

attacher.setMaxScale(maxScale);

}

//设置图片的多点触控时的最小尺寸,默认为0.5*初始图片的尺寸

public void setMinOverstep(float minOverstep){

attacher.setMinOverstep(minOverstep);

}

//设置图片的多点触控时的最大尺寸,默认为4*初始图片的尺寸

public void setMaxOverstep(float maxOverstep){

attacher.setMaxOverstep(maxOverstep);

}

//设置图片的双击缩放时持续时间

public void setZoomDuration(int duration){

attacher.setZoomDuration(duration);

}

//图片被拖动超出x方向边界,MOTIONEVENT.ACTION_UP事件图片回弹的持续时间

public void setTranslateDuration(int duration){

attacher.setTranslateDuration(duration);

}

//图片长按监听事件

public void setOnLongClickListener(OnLongClickListener listener){

attacher.setOnLongClickListener(listener);

}

//图片点击监听事件

public void setOnClickListener(OnClickListener listener){

attacher.setOnClickListener(listener);

}

//标识ViewGroup为ViewPager,处理滑动冲突

public void setIsViewPager(boolean isViewPager){

attacher.setIsViewPager(isViewPager);

}

最后

以上就是坚定热狗为你收集整理的android 长按缩放拖动_GitHub - yongjianx/ScaleImageView: android图片缩放库,支持单击、双击、长按、拖拽、多点触控缩放...的全部内容,希望文章能够帮你解决android 长按缩放拖动_GitHub - yongjianx/ScaleImageView: android图片缩放库,支持单击、双击、长按、拖拽、多点触控缩放...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部