
Android Touch
文章平均质量分 69
fyfcauc
这个作者很懒,什么都没留下…
展开
-
Android系统事件的recycle原理
From: http://www.cnblogs.com/jk1001/archive/2010/07/25/1784837.html最近封装一些功能性的jar包,因为需要产生一些动作,然后给调用者一些回调,所以用到了事件和监听器。 举个例子,比如DragListener和DragEvent,最开始写的时候,每次Drag动作都触发一个DragEvent事件,然后就得new一个DragE转载 2015-01-06 17:23:45 · 566 阅读 · 0 评论 -
Download模块 (九)
Download模块 (九)DownloadsFragment类是负责展现当前Download信息的fragment, 按照需要extends FullscreenFragment,同样遵循惯例,实现了几个Listener 作为 C 的聚合. DownloadsFragment自身所展示的View比较简单,不过里面有一个container view, 该container vi原创 2015-02-28 14:57:57 · 650 阅读 · 0 评论 -
Android View Touch ScrollX/Y TransLationX/Y ScaleX/Y
ScrollX ScrollY 指的是 当前呈现出来的区域的 左上角 针对于 View本身的区域的左上角(0,0) 的相对 X Y坐标。原创 2015-01-07 09:30:46 · 1838 阅读 · 0 评论 -
android touch scroll fling event 测试
------------layer1--------------- -------layer2-------- --layer3-----normal:E/layer1 (31198): dispatchTouchEvent ACTION_DOWNE/layer1 (31198): onInterceptTouchEvent原创 2014-12-19 16:13:33 · 576 阅读 · 0 评论 -
Android Adapter机制 源码笔记(7): AbsListView(3)
AbsListView的setAdapter函数其实没有替换和保存新的Adapter, 也没有触发UI重绘等,只是简单的将mCheckStates/mCheckedIdStates清空, 是重点子类override函数, AbslListView中关于Item**check和select的处理逻辑还是很多的,但是这一块逻辑反而平时开发基本不会涉及(很少有需求对这些功能进行高度定制的)**setOn原创 2015-05-20 12:29:33 · 1186 阅读 · 0 评论 -
ViewFlow 源码笔记(2)
为了在手势操作的阈值判断上和系统保持一致,在init()的时候据根据传入的context取得了ViewConfiguration:final ViewConfiguration configuration = ViewConfiguration.get(getContext()), 这个函数就是根据context对应的display的dimension/density(当前的实现中是density)原创 2015-06-19 14:42:16 · 993 阅读 · 0 评论 -
Android Scroller 源码笔记
Scroller. Android基础位移计算应用类,短小精悍,被动式模拟计算位移过程。注释里对Scroller的定位说的很清楚:该类封装了Scrolling操作,在你需要进行scroll动画的时候可以用Scroller/OverScroller来收集和产出相关的信息,Scroller会为你跟踪随着时间产生的scroll offset及新的坐标, 但是,它不会自动的把这些变化替你apply到相应的原创 2015-10-29 11:48:38 · 600 阅读 · 0 评论 -
Android ViewDragHelper源码笔记
ViewDragHelper, Google官方的View基础触摸位移实现类,解放了很多动作苦手,具有很大的参考价值, 官方的DrawerLayout就直接使用了ViewDragHelper来作为自己的触摸处理机制。ViewDragHelper在设计上的意义在于:将常规的对于触摸以及位移的处理单独抽出来封装为了一个类,实现了V和C的进一步分离, 其实我在之前的开发中也有类似的抽离操作,但是当然做不原创 2015-10-28 16:42:02 · 559 阅读 · 0 评论 -
Android InputEvent(Motion/Key/Sleep....) 流程跟踪
ViewRootImpl的setView()函数中(这个函数被调用代表着Activity的界面基本建立)会建立一群InputStage并以职责链模式链接起来进行协同工作:syntheticInputStageviewPostImeStagenativePostImeStageearlyPostImeStageimeStageviewPreImeStagenativePreImeStage原创 2015-11-20 16:18:36 · 3357 阅读 · 0 评论 -
Android MotionEvent传递流程 源码笔记
ViewGroup的boolean dispatchTouchEvent(MotionEvent ev):mInputEventConsistencyVerifier是处于debug目的使用,可以忽略。onFilterTouchEventForSecurity(MotionEvent event)来检测这个MotionEvent是否应该被dispatch. 只有通过了,才能继续向下走.使用act原创 2015-12-12 15:01:23 · 1557 阅读 · 0 评论 -
2.3 setVisiblity GONE 仍能响应事件
在适配2.3设备时,遇到一个问题, 将一个view已经设为GONE了,但是仍能收到touch事件,后来查了下stackoverflow,http://stackoverflow.com/questions/9333220/buttons-within-view-are-still-clickable-even-though-views-visibility-is-goneandroid的v原创 2014-11-14 11:42:59 · 1618 阅读 · 0 评论 -
Tab 模块 (四)
Tab 模块 (四)TabViewListView是真正负责显示TabView,以及相关TabView交互的View,extends AdapterView, 使用AdapterView而不是更为现成的ListView的原因是,ListView虽然在展现List方面很方便很现成,但是ListView不支持对某个ListItem的Touch复杂交互,要在ListView的基础原创 2015-03-08 17:44:10 · 686 阅读 · 0 评论 -
android ViewParent requestDisallowInterceptTouchEvent 测试
简单测试了一下 requestDisallowInterceptTouchEvent的使用:两个类:public static class myView extends View { @Override public boolean onTouchEvent(MotionEvent event) { // TODO Auto-generated method stub原创 2015-01-30 11:30:24 · 776 阅读 · 0 评论 -
Android FrameLayout的android:foreground属性可以设置单击时的前景色
触摸之后,设置前景色,可以告诉用户确实单击了,增加用户体验。[java] view plaincopy"@drawable/pressed_backgorund_corner" > [html] view plaincopyxml version="1.0" encoding="utf-8"?> selector xmlns转载 2015-02-06 15:56:59 · 661 阅读 · 0 评论 -
android知识点duplicateParentState
今天要做一个效果,组件RelativeLayout上有两个TextView,这两个TextView具有不同的颜色值,现在要的效果是,当RelativeLayout被点击时,整个item有高亮背景。同时这两个TextView要变色。就是父控件响应点击事件,子View不响应点击事件,但是颜色要随着点击而发生变化。这样就用到了属性duplicateParentState。android:duplic转载 2015-02-06 15:54:22 · 408 阅读 · 0 评论 -
Android4.0 Launcher拖拽原理分析(一)
From: http://johnsonxu.iteye.com/blog/1933655在Android4.0源码自带的Launcher中,拖拽是由DragController进行控制的。基本流程是相应的View在检测到用户操作后进行判断,若可以触发拖拽,则设置自身的相应状态,然后将待拖拽对象的Bitmap对象、当前位置、拖拽源、待拖拽对象等信息传给DragController的st转载 2015-02-09 11:02:42 · 921 阅读 · 0 评论 -
android performClick
performClick 是使用代码主动去调用控件的点击事件(模拟人手去触摸控件)-----------------------------------------boolean android.view.View.performClick()Call this view's OnClickListener, if it is defined.Retur转载 2015-01-07 13:20:19 · 531 阅读 · 0 评论 -
Tab 模块 (一)
Tab 模块 (一)做该模块的时间早于Download.MoveMenu extends FrameLayout, 可以响应手势或者按钮出现/消失. 提供了几种手势滑动方向,并且是可以set的并且在APP的setting中持久化.手势滑动方向被enum化:UNDEFINED,LEFT,RIGHT,LEFT_RIGHT,FORBID_DRAG,原创 2015-03-06 13:59:32 · 1118 阅读 · 0 评论 -
Tab 模块 总结
Tab 模块总结从整体上对TabMenu这个模块的一些设计分析:为了实现全屏推拉TabMenu,MovingMenu是叠在mainUI上面的,两者都在一个FrameLayout中,并且MovingMenu都是match_parent来实现了全屏覆盖.MovingMenu作为FrameLayout,本身没有设置backGround,因此是透明的,而里面的两个View组件,原创 2015-03-09 18:47:28 · 1652 阅读 · 0 评论 -
Dragger模块
Dragger模块Dragger模块是项目的一个base模块,用于实现对所挂接View的drag位移.这个模块设计的理念很好,体现了V 和 C 完全独立分离的思想,随便一个View,被Dragger挂接上即可在parent内跟随Touch移动.其实本质上就是之前Tab模块中封装的TouchController,只不过这里直接将其独立出去,将要drag的View也作为To原创 2015-03-11 21:28:47 · 685 阅读 · 0 评论 -
Android Touch Event 超出范围
做了个简单测试:一个一定范围的View,设置其onTouchEvent返回true,表明可以处理Touch事件,点中该View,然后滑动,滑动出View一段距离再松开,原来以为在刚滑动出View的时候,View会收到ACTION_CANCEL事件(因为滑出了它的响应范围了),但是其实后面滑出来View以后,ACTION_MOVE/UP还是会被该View处理。刚开始有点想不通,后来才原创 2015-02-03 10:10:16 · 1853 阅读 · 1 评论 -
Android NestedScroll笔记
NestedScrollingParent和NestedScrollingChild这套协议的目的是为了增强(或者说反转)Android自上而下的MotionEvent传递流,这条流的传递方向是死的,一条路走到天黑不回头,单向的好处是简单,坏处就是反方向的体系内通信基本不可能了。对于某些应用场景,希望在MotionEvent传递到下级以后,还有机会可以回馈给上级一些信息,就从原来的自上而下变成了自原创 2016-09-02 16:39:06 · 1476 阅读 · 1 评论