Android NestedScrolling解决滑动冲突问题(3) - 项目实战 实际需求在前面的两片文章中我们了解了 NestedScroll 的相关接口及一般处理逻辑。在本篇文章中就实现一个具体的联合滑动需求。Android中经常在布局中嵌入 WebView 来展示网页内容,而且WebView内部还有交互逻辑(滚动之类的),如果外部布局也要处理滚动逻辑,就会有滑动冲突,这种场景在实际项目开发中很常见,例如在含有 AppBarLayout 的 CoordinatorLay...
Android NestedScrolling解决滑动冲突问题(2) - fling问题与NestedScroll++ 滑动的处理在前一篇文章 Android NestedScrolling解决滑动冲突问题(1) - 相关接口 中,我们分析了解决滑动冲突问题的 NestedScroll 接口,也给出了解决此类问题的一般性方案:NestedScrollingChild侧NestedScrollingChild(后面简称NC)处理MotionEvent(一般在onTouchEvent中,如果是ViewGroup还...
Android NestedScrolling解决滑动冲突问题(1) - 相关接口 Android NestedScrolling解决滑动冲突问题当父View及子View都可以滑动,并且滑动方向一致时(例如CoordinatorLayout内嵌RecyclerView或者Webview),滑动冲突的解决就需要依赖于Android为我们提供的NestedScrolling接口。NestedScrolling 接口分为两个部分:NestedScrollingParent 及 Ne...
Android获取外置SD卡读写路径 1. 外置SD卡的一些问题1.1 关于外置SD卡上的读写路径Android 4.4及以上版本,应用的外置SD卡读写路径被限定在固定路径上(外置SD卡根路径/Android/data/包名/files)。Android4.4以下版本,申请了外置SD卡读写权限的应用在整个外置SD卡上都有读写权限。1.2 关于外置SD卡路径另外Android没有提供获取外置SD卡路径的API(getExternalSto
Android防止Service被杀死 1. Service被杀死的两种场景1.2 系统回收在系统内存空间不足时可能会被系统杀死以回收内存,内存不足时Android会依据Service的优先级来清除Service。1.2 用户清除用户可以在”最近打开”(多任务窗口、任务管理窗口)中清除最近打开的任务,当用户清除了Service所在的任务时,Service可能被杀死(不同ROM有不同表现,在小米、魅族等第三方产商定制ROM上一般会被立即杀死
Android开发中的各种尺度单位 px像素(pixel),表示屏幕上一个物理像素点 不建议直接使用 px 绘制UI,因为受像素密度的影响,以 px 为单位绘制的UI在不同手机上显示的实际大小会不同。dp密度无关像素。Android 建议使用的一种虚拟像素单位,可以使定义的UI布局在不同像素密度的设备上具有相同的效果。像素密度dpi = 每英寸长度含有的像素点数量 = 屏幕纵向(横向)长度 / 屏幕纵向(横向)像素数目。这种密度无关
Android Studio快捷键 快捷键 功能 快捷键(Mac OSX) 快捷键(Windows/Linux) 显示最近编辑的文件列表 Command + E Ctrl + E 关闭文件 Shift + Click Shift + Click 快速查找、打开文件 Shift + Shift Shift + Shift 注释代码(//) Command + / Ctrl + /
在Android Studio中进行NDK开发的一般流程 1 在类中声明native方法2 在 app/src/main 下创建 jni 目录3 在 app/src/main/java 下运行命令 javah -jni -d ../jni com.path2class.ClassName4 在 app/src/main/jni 下生成了对应的头文件,创建cpp源文件,利用此头文件实现对应的native方法5 在 app 下的 build.gradle 文件
使用OpenCV Android SDK从摄像头帧实时检测人脸 在配置好 OpenCV Android SDK 之后(具体见前一篇文章Android Studio中使用OpenCV Android SDK ),可以使用 OpenCV 封装的接口很方便地进行各种图像处理操作。这里简单介绍如何直接使用 OpenCV 训练的人脸模型直接从摄像头帧检测人脸。1. 新建Android Project这里可以直接使用默认的 Android Studio 项目模板, Act
Android Studio中使用OpenCV Android SDK OpenCV是著名的跨平台计算机视觉开源库,广泛应用于计算机视觉相关领域。OpenCV 已经发布 Android 平台下的 SDK,可以直接导入 Android Studio。OpenCV Android SDK 下载地址: Download OpenCV Android SDK 。Android Studio项目中配置使用OpenCV Android SDK在项目根目录下创建 libraries
iptables导致nginx反向代理不可用的解决方案 在nginx反向代理、web服务器所在的同一系统上配置iptables进行访问限制时,可能会导致nginx反向代理不能正常工作。一种常见原因是iptables没有配置来自本机ip的连接权限而且默认是DROP策略。解决方法也很简单,添加本机ip的连接权限,例如:sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INP
Linux下使用iptables禁止指定IP地址的网络连接 wsliu@qcloud:~$ sudo iptables -L[sudo] password for wsliu: Chain INPUT (policy ACCEPT)target prot opt source destination DROP all -- 120.203.229.36 anywhere
常用搜索引擎使用技巧 指定站内搜索使用site指定在某网站内搜索如只在知乎中搜索 liuwons : liuwons site:zhihu.com精确匹配使用双引号来指定精确匹配单词或短语如精确搜索 liuwons : "liuwons"模糊搜索使用星号(*)代替一个单词进行模糊搜索例如"a * saved is a * earned"会搜到如下结果:A penny saved is a penny earned指定索搜
Ubuntu下Chrome造成系统假死的解决方法 在64 bit Mint Linux下使用Chrome时,经常导致整个系统进行假死状态,图形界面下除了鼠标能动,什么也干不了,不过能够Ctrl + F1进行终端环境。在网上查了很久,有几种情况可能导致这种状况:Chrome中的某些插件Chrome的硬件加速显卡驱动逐一排查后找到我这的原因是Chrome的硬件加速。关掉硬件加速(hardware acceleration)后不再假死。参考链接:
Python快速搭建自动回复微信公众号 Python快速搭建自动回复微信公众号在之前的一篇文章 Python利用 AIML 和 Tornado 搭建聊天机器人微信订阅号 中用 aiml 实现了一个简单的英文聊天机器人订阅号。但是只能处理英文消息,现在用 图灵机器人 来实现一个中文的聊天机器人订阅号。这里主要介绍如何利用 Python 的 Tornado Web框架以及wechat-python-sdk 微信公众平台 Python 开发包来
字符编码简介 1. ASCII码ASCII (American Standard Code for Information Interchange, 美国标准信息交换代码),是基于拉丁字母的一套编码系统,主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统。 单个字节可以表示256个不同的字符,不过 ASCII 只使用了其中低于\x80(即最高位字节为0)的一半来表示所有的英文字符以及一些控制字符
nginx实现请求转发 反向代理适用于很多场合,负载均衡是最普遍的用法。nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理。nginx 反向代理官方文档: NGINX REVERSE PROXY当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能: 用 nginx 在80端口监听所有请求,并依据转发规则(比较常见的是以 URI
Python写的实时地球图片下载工具 Himawari8 Image Downloaderhimawari8downloader 是下载卫星 Himawari8 拍摄到的地球近实时照片的 Python 脚本。GitHub 地址: himawari8downloader 。依赖himawari8downloader 依赖 PIL 和 Requests:pip install Pillowpip install requests使用直接运