hackyviewpager有什么用

继承于viewpager 可以和photoView一起使用,实现相册图片的左右滑动,放大缩小,等
package davidwang.tm.view;

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.
 *
 * Julia Zudikova
 */

/**
 * 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) {
        if (!isLocked) {
            return super.onTouchEvent(event);
        }
        return false;
    }

    public void toggleLock() {
        isLocked = !isLocked;
    }

    public void setLocked(boolean isLocked) {
        this.isLocked = isLocked;
    }

    public boolean isLocked() {
        return isLocked;
    }

}
时间: 2024-08-26 11:30:33

hackyviewpager有什么用的相关文章

PhotoView

一.PhotoView的作用 PhotoView是继承ImageView的自定义控件,支持双击或者双指缩放.不仅支持单个的ImageView,同时也能与ViewPager.ScollView等父控件很好的兼容,亦能与ImageLoader.Picasso等异步加载网路图片的框架很好的兼容. 二.使用 PhotoView的使用其实很简单,其关键点就是处理Touch事件和Matrix图形变换. 1.单张图片的图形变换 要想处理图片的图形变换,首先要获取PhotoViewAttacher对象. Pho

Android仿微信朋友圈图片查看器

转载请注明出处:http://blog.csdn.net/allen315410/article/details/40264551 看博文之前,希望大家先打开自己的微信点到朋友圈中去,仔细观察是不是发现朋友圈里的有个"九宫格"的图片区域,点击图片又会跳到图片的详细查看页面,并且支持图片的滑动和缩放?这个功能是不是很常用呢?!那么我今天正好做了这个Demo,下面为大家讲解一下.首先按照惯例先看一下效果图吧,尤其不会录制gif动画(哎~没办法,模拟器不支持多点触控,刚好我的手机又没有Roo

点击查看大图Activity

1.使用方式 Intent intent = new Intent(FriendCircleActivity.this, ImageGralleryPagerActivity.class);//0,索引,第几张图片 intent.putExtra(ImageGralleryPagerActivity.EXTRA_IMAGE_INDEX, 0); ArrayList<String> imgs = new ArrayList<String>(); imgs.add("图片UR

android GridView显示相同尺寸图片以及预览功能

项目描述: GridView加载图片,在程序中控制各个图片尺寸一致,点击图片进行预览,可以滑动切换查看不同的界面,可以手势控制图片缩放,效果图如下: 1.GridView控制每个控件大小一致 GridView中的控件大小在程序中控制,思路就是获取屏幕宽高,减去控件之间的空隙,除以每一行控件的个数,就是控件的宽,可以将控件的高设置与宽一致. 首先获取屏幕宽高 public static int screenWidth;//屏幕宽度 WindowManager windowManager = get

常用的有关文件下载的框架

#服务端和客户端交互服务器:接收文件,并且把文件,存储到指定目录,对文件进行命名的等操作. 客户端:选定文件,拼接参数,上传到指定服务器上. #购买服务器(阿里云服务器或者自己搭建服务器) #搭建服务器(软件服务器) 源码环境:jre7 tomcat7 1.将.war文件复制到tomcat服务器webapps下,启动服务器即可 2.访问工程路径a即可测试上传 b/s架构  通过浏览器上传 c/s结构  通过Android端上传 上传文件服务地址:http://192.168.10.168:808

cc_美团 商品详情图片放大显示ViewPager

package com.chencheng.meituan.view; import java.util.ArrayList; import java.util.List; import com.xinbo.widget.HackyViewPager; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.os.B

开源UI类库的使用

PullToRefresh 特点:无侵入的下拉刷新,就是可用在ListView,ScrollView,GridView,ViewPager等所有能滑动的控件上,而且扩展性强,可以监听下拉进度,更改下拉和上拉的布局以及动画,github地址:https://github.com/chrisbanes/Android-PullToRefresh,其作者是Google官方Android工程师ChrisBane 原理: PullToRefreshBase本身继承LinearLayout,在构造方法中ad