Touch事件or手机卫士面试题整理回答(二)
Touch
事件or手机卫士面试题整理回答(二)
自定义控件
1. Touch
事件的传递机制
顶级
View
->父View
->子View
,不处理逆向返回
OnInterceptTouchEvent()
,返回值控制Touch
是否向下传递.true
中断事件,false
不中断事件。
onTouchEvent()
返回值决定否处理事件。True
消耗事件,False
不处理事件向上传递。
2. 轮播动画的实现原理
ViewPage
和TextView
组合实现图片和标题的效果
ViewPage
设置setOnPageChangeListener
监听变换图片和对应文字内容。
Handler
发送handler.sendEmptyMessageDelayed(0, 200)
延时消息,实现自动变换图片。
ViewPage
设置setOnTouchListener
,清空handler
Message
消息队列,停止图片轮播
3.自定义ViewPage
组合控件实现原理
继承
ViewGroup
容器类MyViewPage
动态向容器添加控件。也可以是布局组合控件等等重写
onMeasure()
设置控件的宽高,子控件必须手动设置getChildAt(i).measure(widthMeasureSpec,heightMeasureSpec);
重写
onLoayout()
设置控件的绘制的位置。这里动态设置子控件绘制成一
字状,getChildAt(i).layout(getWidth() * i, 0, getWidth() * (i + 1), getHeight());
定义
GestureDetector
设置手势滑动回调监听重写
onTouchEvent(MotionEvent)
委托GestureDetector
手势识别器来处理滑动触摸事件,onScroll(...)
的回调。设置View
scrollBy()
水平方向滑动的距离。scrollTo(...)
设置滑动到的具体位置定义
Scroller
,控制滑动滑动效果。重写
computeScroll()
。View
在滑动时不断回调该方法,控制更新Page
页面页面定义
OnPageChangeListener
接口,设置页面改变回调监听onPageChange(...)
。
整理手机卫士功能点的实现思路
1. 手机防盗功能设置原理
SharedPreferences
保存设置密码。是否进行过Guride
导向页设置。SIM
卡串号。
ViewPage
+Fragement
实现滑动替换页面逻辑,getSystemService(Context.TELEPHONY_SERVICE);
获取到系统电话发素获取到手机sim卡串号,绑定手机号码。 注册
广播
。电话卡改变发送短信个指定安全联系人。注册短信广播。
intent.getExtras().get("pdus");
得到不断发送过来的消息。截取短信内容实现对相应指令功能的操作。
2. 电话拦截功能
ListView
自定义可改变mData
的Adapter
AlartDialog
添加黑名单,设置拦截模式AsyncTask
异步加载查询黑名单。扉页查询黑名单
通过是否开启一个服务,获取到电话号码,挂断电话,并销毁通话记录。
3.软件管家
ViewUtils注解事件,注解控件问题,
通过
context.getPackageManager()
获取PackageManage
手机安装的所有软件管理器。并自定义Adapter``ListViwe
展示软件列表。
ListView
设置setOnItemClickListener
监听弹出PopupWindow
事项设置相应的Intent
来实现对该列表项软件的操作
4.进程管理。
获取到系统服务 得到运行的进程信息
// 通过AcitvityManager 取得想应的进程信息;
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
// 获取到包管理器
PackageManager pm = context.getPackageManager();
// 获取系统运行的程序信息
List<RunningAppProcessInfo> runningAppProcesses = am.getRunningAppProcesses();
AsyncTask
异步加载,ListView
展示进程列表。并分辨是系统进程or用户进程。通过
ActivityManager
通过killBackgroundProcesses(...)
杀死用户进程。为了防止
Service
后台线程被杀死。动态注册registerReceiver
一个广播,重启杀死Service
。
Touch事件or手机卫士面试题整理回答(二)的更多相关文章
- 【IT笔试面试题整理】二叉搜索树转换为双向链表
[试题描述] 将二叉搜索树转换为双向链表 对于二叉搜索树,可以将其转换为双向链表,其中,节点的左子树指针在链表中指向前一个节点,右子树指针在链表中指向后一个节点. 思路一: 采用递归思想,对于二叉搜索 ...
- iOS开发面试题整理(二)
8 类别的作用?继承和类别在实现中有何区别? 答案:category 可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改. 并且如果类别和原来类中的方法产生名称冲突,则类别 ...
- php面试题整理(二)
索引,desc 和explain unset只是删除了变量名
- python面试题整理(二)
1.进程,线程,协程定义,有什么区别 进程是操作系统分配资源的最小单位,一个进程对应一块CPU 线程是进程中的某一个控制单元,是CPU调度的最小单元,线程之间相互独立,进程结束线程也会结束,一个进程至 ...
- Android Touch事件之二:dispatchTouchEvent()和onTouchEvent()篇
2015-12-01 15:06:14 Android Touch事件第一篇:Touch事件在父ViewGroup和子View之间的传递简单分析了事件的传递流程,这次深入了解下dispatchTouc ...
- myBatis+Spring+SpringMVC框架面试题整理
myBatis+Spring+SpringMVC框架面试题整理(一) 2018年09月06日 13:36:01 新新许愿树 阅读数 14034更多 分类专栏: SSM 版权声明:本文为博主原创文章 ...
- 简易封装手机浏览器touch事件
做手机开发时候,简单想用一些动作,如touchLeft,touchRight等, 使用其他库文件就要加载很多不必要的东西,流量的浪费 今天简单写了封装touch的库,简单的监听一些逻辑 onTouch ...
- 手机touch事件及参数【转】(自己懒得写了,找了一篇摘过来)
[html5构建触屏网站]之touch事件 前言 一个触屏网站到底和传统的pc端网站有什么区别呢,交互方式的改变首当其冲.例如我们常用的click事件,在触屏设备下是如此无力. 手机上的大部分交互都是 ...
- 手机触摸touch事件
1.Touch事件简介 pc上的web页面鼠 标会产生onmousedown.onmouseup.onmouseout.onmouseover.onmousemove的事件,但是在移动终端如 ipho ...
随机推荐
- Android 再按一次退出程序
实现代码: private long exitTime = 0; /** * 捕捉返回事件按钮 * * 因为此 Activity 继承 TabActivity 用 onKeyDown 无响应,所以改用 ...
- Curl之Post Json
curl Post Json $ curl -i -X POST -H "'Content-type':'application/x-www-form-urlencoded', 'chars ...
- base64dll
继上次的dll学习后,想开发个软件,连接到百度的云存储服务器,上传文件.发现要算秘钥,在网上找了到了hmac-sha1,base64的源码,发现有些是c++写的,有些是c写的一起写到一个文件里有些麻烦 ...
- platform机制
最近在看SPI.I2C这样简单点的总线驱动程 序,从Linux2.6起,内核引入了一套新的驱动管理和注册机制:Platform_device和Platform_driver.现在Linux中 大部分的 ...
- cloudstack安装篇3-SELinux配置、NTP时间同步、配置ClouStack软件库
一.SELinux配置 为了让CloudStack正常工作,我们必须将SELinux设置为permissive.需要在当前系统运行状态下和启动后都能够生效,进行以下配置. 在系统运行状态下的将SELi ...
- 使用yum和iso镜像离线升级RedHat系统
创建一个用于挂载iso镜像的目录.由于这个目录不能在挂载时自动创建,所以需要以root身份先创建一个目录.命令: mkdir mount_dir 以root身份把iso镜像挂载到上一步创建的目录上.命 ...
- pm 2.5
定陵</a></div><div class="staaqi"><span class="label pmsmall" ...
- localstorage本地存储
前段时间项目上用到了本地存储,所以研究看了下,在这做下笔记. 本地存储是一个window的一个属性,分别是localStorage和sessionStorage,两者用法完全相同,只不过一个是sess ...
- 理解C++中函数的返回
连续几年的C++程序设计课教学中,学生中总有人要求为他们单独解释函数的返回(return)究竟是什么意思.各种书中都会详讲返回值的问题,而学生们掌握的难点却是在返回至何处执行.本文试图通过对一般函数及 ...
- 14周事情总结-机器人-大数据hadoop
14周随着考试的进行,其他该准备的事情也在并行的处理着,考试内容这里不赘述了 首先说下,关于机器人大赛的事情,受益颇多,机器人的制作需要机械和电控两方面 昨天参与舵机的测试,遇到的问题:舵机不动 排查 ...