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,清空handlerMessage消息队列,停止图片轮播
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(...)的回调。设置ViewscrollBy()水平方向滑动的距离。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的AdapterAlartDialog添加黑名单,设置拦截模式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命名规范(自定义)
此规范参考自android源码,并加以改进,仅供个人使用,如果你觉得还有可取之处,可以参考下,以后有好的规则,再补充 总体规范: 类名要清晰,能反映出这个类的作用,最好能达到见名知义的效果 方法名要使 ...
- EventHandlerList z
写一个类时,有时候会在同一个类上添加很多事件,事件很多的话,是不容易管理的,.NET提供的EventHandlerList可以辅助多个事件的管 理,但不方便的地方是,它不是类型安全的,缺少类型安全,多 ...
- 韦东山yy公开课笔记(2)--汇编,段,栈,重定位/链接地址,位置无关吗
1. 要不要学习汇编 可以只懂一点,工作中基本不用,一旦用就是出了大问题 ldr : load 读内存 ldr r0, [r1] : r1里存放的是地址值, 去这个地址读取4字节的内容,存入r0 s ...
- POJ2229 - Sumsets(完全背包)
题目大意 给定一个数N,问由不同的2的幂之和能组成N的方法有多少种 题解 看完题目立马想到完全背包...敲完代码上去超时了....后来发现是%的原因...改成减法就A了...%也太他妈耗时了吧!!!( ...
- POJ2923--Relocation(01背包+状压dp)
果然对状压DP,我根本就不懂=.= /************************************************** Problem: 2923 User: G_lory Mem ...
- c语言 字符版 简易2048
花了两个多小时,用最蠢的方法写的……最简陋版…… 还不确定这么写逻辑对不对…… #include <iostream> #include <cstdio> #include & ...
- linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改
原文地址:http://www.cnblogs.com/firtree/p/4028354.html linux下利用openssl来实现证书的颁发(详细步骤) 1.首先需要安装openssl,一个开 ...
- PTA 5-12 排序 (25分)
给定NN个(长整型范围内的)整数,要求输出从小到大排序后的结果. 本题旨在测试各种不同的排序算法在各种数据情况下的表现.各组测试数据特点如下: 数据1:只有1个元素: 数据2:11个不相同的整数,测试 ...
- C#- 控制台Timer
很少在控制台上用定时器,最近要用到,百度了一遍文章.很不错,摘下来,作备忘 关于C#中timer类 在C#里关于定时器类就有3个 1.定义在System.Windows.Forms里 2.定义在Sys ...
- android 数据库的升级与降级解决方案
在我们写的程序中不避免的需要升级.或者说需要改变业务逻辑,那这个时候就需要修改数据库的字段,来适应不同的表结构 我们一般写数据库都是操作一个继承至 SQLiteOpenHelper 的类 然后我们需要 ...