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 ...
随机推荐
- ZOJ 3790 Consecutive Blocks
大致题意就是给你一个数列,让你最多移除K个数字,使得连续的相同数字的长度最大,并求出最大长度. 我们将此序列按颜色排序,颜色相同的话按位置排序,那么排完序之后颜色相同的blocks就在一起,只是他们的 ...
- 【原】本地win7,远程服务器XP系统,两台机器间不能拖动文件
(1)网上大部分说是rdpclip.exe(存放在c:/windows/system32)的问题,试了好几次,没有解决 (2)通过第二种方式解决,详细步骤如下所示: 1.点击进入远程连接. 2.选择本 ...
- qosort 使用使用小例子
输入 1500 3150 300100 200 输出结果470 471100 200150 300470 471 #include <iostream> #inc ...
- Java笔记(二十二)……Collection集合
概述 为什么会出现集合类 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式 数组和集合类同是容器,有何不同 数组虽然也可以存储 ...
- 定时备份为Sharepoint做网站备份,并删除指定日期的备份
一.创建bat文件 @echo cd \ c: cd "Program Files\Common Files\Microsoft Shared\web server extensions\1 ...
- Linux下安装mysql5.6.11(找点有用的信息太费劲)(转)
Linux下安装mysql5.6.11(找点有用的信息太费劲) (2013-04-25 10:25:09) 1.申请阿里云Linux服务器 昨天在阿里云申请了一个免费试用5天的Linux云服务 ...
- 安装Ambari
1.yum install pdsh 这玩意一般系统都没带 2.检查下umask码,022是需要的 3.获取ambari的官方repo文件,并安装repo文件 wget http://publi ...
- UVa1424–Salesmen(DP)
题目大意 给定一个包含n(n<=100)个点的无向连通图和一个长度为L的序列A(L<=200),你的任务是修改尽量少的数,使得序列中的任意两个相邻的数或者相同,或者对应图中两个相邻结点 题 ...
- Weblogic 集群部署说明 --转
代理web.xml 设置 <servlet> l <servlet-name>HttpClusterServlet</servlet-nam ...
- linux命令之cat
转自:http://www.cnblogs.com/peida/archive/2012/10/30/2746968.html cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容, ...