更改Toast位置&双击事件&三击(多击)事件&发送小火箭&创建快捷图标&ExpandableListView&备份短信&黑名单管理及优化总结
1、更改归属地提示框显示的位置Toastview对象显示的两个阶段(渲染机制) a) 测量 onmesure() b) 显示 layout() 如果要在测量前获取组件宽高,用LayoutParams |
2、双击事件,以及触摸事件,单击事件,长按事件 如果一个组件同时注册点击事件和触摸事件 注意,触摸事件要返回false,否则就consume该事件了 点击事件就失效了 |
3、三击事件,多击事件 查看系统设置Android version的源码实现: ctrl+h,搜字符串strings.xml |
4、一个可以自由移动的土司(拨号的时候) 可以响应触摸事件的悬浮窗体 a) 为土司注册触摸事件 b) 注意一些配置,params flags params.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE c) 最后还能保存起来 |
5、发射小火箭 动画 触摸 handler+message |
6、创建快捷图标 a) 必须是隐式意图 b) 避免多次创建快捷图标(系统源码) intent.putExtra("duplicate", false); |
7、可以扩展的ListView-ExpandableListView 注意ListView优化 a) 历史缓存View对象-convertView b) ViewHolder,绑定查找到的组件,防止多次查找 |
8、备份短信 a) 内容提供者,内容解析者,获取短信内容 b) 回调函数,抽象接口 |
9、短信内容进行加密 异或 |
10、黑名单功能-黑名单数据库创建,以及增删改查 SQLOpenHelper SQLiteDatabase |
11、黑名单优化——ListView优化 1) 使用历史缓存 convertView a) 判空 b) 判断类型 2) ViewHolder,保存已经通过id查找到的view对象的引用 a) 绑定到view对象的tag,view.setTag(viewHolder); b) 获取绑定的view对象的tag ViewHolder viewHolder = view.getTag(); |
|