ViewConfiguration.getScaledTouchSlop () 用法
原文链接:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0225/907.html
getScaledTouchSlop是一个距离,表示滑动的时候,手的移动要大于这个距离才开始移动控件。如果小于这个距离就不触发移动控件,如viewpager就是用这个距离来判断用户是否翻页
ViewConfiguration滑动参数设置类:
/** * 包含了方法和标准的常量用来设置UI的超时、大小和距离 */ public class ViewConfiguration { // 设定水平滚动条的宽度和垂直滚动条的高度,单位是像素px private static final int SCROLL_BAR_SIZE = 10; //定义滚动条逐渐消失的时间,单位是毫秒 private static final int SCROLL_BAR_FADE_DURATION = 250; // 默认的滚动条多少秒之后消失,单位是毫秒 private static final int SCROLL_BAR_DEFAULT_DELAY = 300; // 定义边缘地方褪色的长度 private static final int FADING_EDGE_LENGTH = 12; //定义子控件按下状态的持续事件 private static final int PRESSED_STATE_DURATION = 125; //定义一个按下状态转变成长按状态的转变时间 private static final int LONG_PRESS_TIMEOUT = 500; //定义用户在按住适当按钮,弹出全局的对话框的持续时间 private static final int GLOBAL_ACTIONS_KEY_TIMEOUT = 500; //定义一个touch事件中是点击事件还是一个滑动事件所需的时间,如果用户在这个时间之内滑动,那么就认为是一个点击事件 private static final int TAP_TIMEOUT = 115; /** * Defines the duration in milliseconds we will wait to see if a touch event * is a jump tap. If the user does not complete the jump tap within this interval, it is * considered to be a tap. */ //定义一个touch事件时候是一个点击事件。如果用户在这个时间内没有完成这个点击,那么就认为是一个点击事件 private static final int JUMP_TAP_TIMEOUT = 500; //定义双击事件的间隔时间 private static final int DOUBLE_TAP_TIMEOUT = 300; //定义一个缩放控制反馈到用户界面的时间 private static final int ZOOM_CONTROLS_TIMEOUT = 3000; /** * Inset in pixels to look for touchable content when the user touches the edge of the screen */ private static final int EDGE_SLOP = 12; /** * Distance a touch can wander before we think the user is scrolling in pixels */ private static final int TOUCH_SLOP = 16; /** * Distance a touch can wander before we think the user is attempting a paged scroll * (in dips) */ private static final int PAGING_TOUCH_SLOP = TOUCH_SLOP * 2; /** * Distance between the first touch and second touch to still be considered a double tap */ private static final int DOUBLE_TAP_SLOP = 100; /** * Distance a touch needs to be outside of a window's bounds for it to * count as outside for purposes of dismissing the window. */ private static final int WINDOW_TOUCH_SLOP = 16; //用来初始化fling的最小速度,单位是每秒多少像素 private static final int MINIMUM_FLING_VELOCITY = 50; //用来初始化fling的最大速度,单位是每秒多少像素 private static final int MAXIMUM_FLING_VELOCITY = 4000; //视图绘图缓存的最大尺寸,以字节表示。在ARGB888格式下,这个尺寸应至少等于屏幕的大小 @Deprecated private static final int MAXIMUM_DRAWING_CACHE_SIZE = 320 * 480 * 4; // HVGA screen, ARGB8888 //flings和scrolls摩擦力度大小的系数 private static float SCROLL_FRICTION = 0.015f; /** * Max distance to over scroll for edge effects */ private static final int OVERSCROLL_DISTANCE = 0; /** * Max distance to over fling for edge effects */ private static final int OVERFLING_DISTANCE = 4; }
原文链接:http://blog.csdn.net/freedom13905149949/article/details/51661019
这篇博客的目的在于借助于ScrollView这个控件为大家讲解在我们平常的安卓开发过程经常使用的关于View的滑动知识
1、ScrollView的构造方法
public ScrollView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {super(context, attrs, defStyleAttr, defStyleRes);initScrollView();final TypedArray a = context.obtainStyledAttributes(attrs, com.android.internal.R.styleable.ScrollView, defStyleAttr, defStyleRes);setFillViewport(a.getBoolean(R.styleable.ScrollView_fillViewport, false));a.recycle();}
大家发现ScrollView这个构造方法里面一共有四个参数,其实所有的View都是按照View的规则绘制出来的,这四个参数照样适用于其他View的自定义
2、initScrollView()这个方法的源代码:
private void initScrollView() {mScroller = new OverScroller(getContext());setFocusable(true);setDescendantFocusability(FOCUS_AFTER_DESCENDANTS);setWillNotDraw(false);final ViewConfiguration configuration = ViewConfiguration.get(mContext);mTouchSlop = configuration.getScaledTouchSlop();mMinimumVelocity = configuration.getScaledMinimumFlingVelocity();mMaximumVelocity = configuration.getScaledMaximumFlingVelocity();mOverscrollDistance = configuration.getScaledOverscrollDistance();mOverflingDistance = configuration.getScaledOverflingDistance();}
详细解释这个类里面用到的API
//这个方法的参数表示当前是否获得焦点
setFocusable(boolean flag);setDescendantFocusability(int flag);//如果要重写这个View的onDraw()方法,设置这个标志位false会走重写过的方法
setWillNotDraw(boolean flag);
ViewConfiguration
//能够识别的最小滑动举例
ViewConfiguration.getScaledTouchSlop();//最小加速度
ViewConfigurationgetScaledMinimumFlingVelocity();//最大加速度
ViewConfiguration.getScaledMaximumFlingVelocity();//滚动距离
ViewConfiguration.getScaledOverscrollDistance();//Filing距离
ViewConfiguration.getScaledOverflingDistance();
ViewConfiguration.getScaledTouchSlop () 用法相关推荐
- 了解ViewConfiguration
简介: ViewConfiguration这个类主要定义了UI中所使用到的标准常量, 像超时.尺寸.距离,如果我们需要得到这些常量的数据,我们就可以通过这个类来获取,具体方法如下: 1.获取ViewC ...
- 学习使用安卓scroller
Android Scroller 解读编写Demo Scroller是一个专门用于处理滚动效果的工具类,大多数情况下,我们直接使用Scroller的场景并不多,但是很多大家所熟知的控件在内部都是使用S ...
- android 方法技巧
Github网站:https://github.com/tangqi92/Android-Tips: 1.Throwable接口中的getStackTrace()方法(或者Thread类的getSta ...
- 安卓代码中常用的代码以及问题收集
EnglishVersion ->_->:https://raw.githubusercontent.com/jiang111/awesome-android-tips/master/RE ...
- android 刷新某条数据_Android 支持刷新、加载更多、带反弹效果的RecyclerView
点击上方"Android技术杂货铺",选择"标星" 干货文章,第一时间送达! 开篇 当前市面上很多支持刷新.加载更多RecyclerView开源库,为何我这里还 ...
- 安卓开发仿微信图片拖拽_使用Android 模仿微信朋友圈图片拖拽返回
1概述 目前的app的动画效果是越来越炫了,很多主流app的图片预览返回都有类似功能,比较常见的是ios自带相册,微信朋友圈等等.自己项目中也有类似功能,最近整理了一下这个功能的代码,做个笔记记录,有 ...
- Android 小技巧
为什么80%的码农都做不了架构师?>>> 原文出处: Dan Lew 译文出处:Android Performance 前言 本文是一篇译文,这篇是这个系列的第一篇.讲述的 ...
- 安卓开发仿微信图片拖拽_Android 仿微信朋友圈图片拖拽返回
目前的app的动画效果是越来越炫了,很多主流app的图片预览返回都有类似功能,比较常见的是ios自带相册,微信朋友圈等等.自己项目中也有类似功能,最近整理了一下这个功能的代码,做个笔记记录,有兴趣的朋 ...
- 实现ViewPager一次滑动多页(保持居中)
项目中开发日历功能,需求是可以连续滑动多页,有列表的流畅.又要保持当前页居中显示. 参考文献: http://www.open-open.com/lib/view/open1435026935638 ...
最新文章
- 2022年你应该知道的机器学习算法
- DIV CSS left right top bottom定位
- python后端开发工程师做什么-如何面试Python后端工程师?
- swift瀑布流实现_CSS 实现瀑布流布局(display: flex)
- matlab操作入门实验报告,matlab操作实验报告
- 安安猜价格聪明机器人_5 项降噪优化,石头扫地机器人 T6 安静也有大吸力
- 调试网络收发不通问题
- 超实用的微信图片转换工具
- Linux修改终端提示符
- Python数据科学库-小测验
- 比较简单搞定S60的签名
- 普林斯顿微积分读本小记(未完待续)
- 群晖迅雷套件1.7.2(支持DSM6.x和DSM7. X系统)
- 微信小程序正则表达式截取_微信小程序实现简单input正则表达式验证功能示例...
- 安装angular ng-alain
- 一代版本一代神,加密行业在新局势下充满机遇也面临挑战
- HBuilder(uniapp) 配置android模拟器
- WIFI无线传输,图传。视频提节
- MSDN如何找到和打开
- 基于人工智能的地球物理参数反演范式理论及判定条件