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 ...
随机推荐
- MVC系统过滤器、自定义过滤器
一.系统过滤器使用说明 1.OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数.它有以下属性: Duration:缓存的时间,以秒为 ...
- modsecookie
Cookie parsing added添加cookie解析 现在你可以使用新的可选的过滤器变量(COOKIE_name, COOKIE_NAMES, COOKIE_VALUES)分析cookies. ...
- 【转】centos 6.4 samba 安装配置
关掉防火墙 service iptables stop chkconfig iptables off (永久关闭防火墙) 关闭SELinux vi /etc/sysconfig/selinu ...
- OpenGL立方体在世界坐标系中_缩放_旋转_平移_顶点片源着色器_光照作用_棋盘纹理贴图
读取bmp等图片格式中的像素还有难度,就先用这个棋盘图象素来弄了 代码打错一个就一直First-chance exception ,貌似还有一个要用q或者Q才能成功退出,不知道缺少哪句,我用窗口红叉退 ...
- 【HTML】Advanced6:HTML5 Forms Pt. 1: Input Types
1.Not yet work fully on all major browsers 2.<input type="search tel url email datetime date ...
- (转载)JDK中的设计模式
写的很好,学习道路更轻松一些 原文地址:http://blog.csdn.net/gtuu0123/article/details/6114197 JDK中设计模式 分类: Java相关 设计模式 2 ...
- wuzhicms发送邮件
//邮件发送 $config = get_cache('sendmail'); $siteconfigs = get_cache('siteconfigs'); $password = decode( ...
- 不只是打车软件,中国车主们赋予了Uber更多意义
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- mongdb高级操作(group by )
首先介绍哈方法 /** * 利用java驱动自带函数分组查询 * @param key 用来分组文档的字段 [group by key] * @param cond 执行过滤的条件 [where na ...
- nyoj 325 zb的生日
01背包 zb的生日 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 今天是阴历七月初五,acm队员zb的生日.zb正在和C小加.never在武汉集训.他想给这两位兄 ...