一些资料整理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zh_qianwei/article/details/50498541

不定时添加一些比较有特点的文章或者开源项目地址

  • 静默安装http://blog.csdn.net/guolin_blog/article/details/47803149

    介绍了一种除Root外,开启无障碍服务方式实现方案

  • 显示文本的特效 https://github.com/hanks-zyh/HTextView

    用户显示标签类的用这个效果不错,但是如果项目中用的太多会有性能问题;另外不支持换行;有些效果会有长度限制

  • Android下数学公式渲染 https://github.com/kexanie/MathView

    原理是重写Webview部分方法,加载本地js库。配合本地实现网页内图片缓存技术使用比较好。

  • ConcurrentHashMap

    多线程ConcurrentHashMap实现方式原理

  • ActivityRouterhttps://github.com/mzule/ActivityRouter

    支持给Activity定义 URL,这样可以通过 URL 跳转到Activity,支持在浏览器以及 app 中跳入。
    c/s+b/s混合开发用这个比较适合

android view touch事件传递三个重要方法
1.public boolean dispatchTouchEvent(MotionEvent ev)
当触摸事件发生的时候,首先会被当前的activity进行分发,即当前activity的dispatchTouchEvent方法会被执行。
这个时候,该方法有三种返回的情况:
return false: 表明事件不会被进行分发。事件会以冒泡的方式被传递给上层的view或activity的onTouchEvent方法进行消费掉。
return true:表明该时间已经被处理。事件会被当前view或activity的dispatchTouchEvent给消费掉。不会再进行传递,事件到此结束。
return super.dispatchTouchEvent(ev):表明该事件将会被分发。此时当前View的onIntercepterTouchEvent方法会捕获该事件,判断需不需要进行事件的拦截。

2.public boolean onInterceptTouchEvent(MotionEvent ev) Activity没有这个方法
该方法用户拦截被传递过来的事件,用于判断被传递过来的事件是否需要被当前的view进行处理。
return false : 不对事件进行拦截,放行该事件。事件会被传递到当前view的子控件中,由子控件中的dispatchTouchEvent方法进行分发处理。
return true : 拦截该事件,将该事件交给当前view的onTouchEvent方法进行处理。
return super.inInterceptTouchEvent(ev):默认拦截方式,和return true一样。该事件会被拦截,将该事件交给当前view的onTouchEvent方法进行处理。(这里需要有一点说明,当有两个view。A view中有一个B view.点击A.A中如果onInterceptTouchEvent()返回super.interceptTouchEvent(ev),则事件将会被A进行拦截,交给A的onTouchEvent()进行处理,如果点击的是B,A中如果onInterceptTouchEvent()返回super.interceptTouchEvent(ev),则事件将不会被拦截,会被分发到子控件中)

3.public boolean onTouchEvent(MotionEvent event)
当前的view把事件进行了拦截,则事件则会被传递到该方法中
return false:表明没有消费该事件,事件将会以冒泡的方式一直被传递到上层的view或Activity中的onTouchEvent事件处理。如果最上层的view或Activity中的onTouchEvent还是返回false。则该事件将消失。接下来来的一系列事件都将会直接被上层的onTouchEvent方法捕获
return true: 表明消费了该事件,事件到此结束。
return super.onTouchEvent(event):默认情况,和return false一样。

流式布局FlexboxLayout
这里写图片描述

猜你喜欢

转载自blog.csdn.net/zh_qianwei/article/details/50498541