功能模块:联系人 通话记录 拨打电话 短信聊天
1.联系人管理涉及的表
Contacts 联系人表 一条记录记录一个联系人信息 与raw-contacts是一对多的关系
Raw-contacts 联系人的账户信息一个raw-contacts 有多种类型的数据对应多种data 表
Data 联系人的详细信息
Mimetype 存储数据的类型 类型的对照表
2.实现友录项目的引导界面
SplashActivity界面跳转 ImageView(logo)组合动画
Android动画方案:
1)补间动画
anim.splash.xml
组合动画 :渐变 缩放
应用:将动画文件解析成动画对象,将动画对象设置给应用动画的控件
可给动画设置监听,动画结束时跳转
在跳转结束时实现切换动画(出场和入场)
overridePendingTransition(R.anim.outsplash, R.anim.in_main);
2)帧动画
3)属性动画
Day_02
1.联系人的管理相关的contentProvider:
a) ContactsContract.Contacts对应 Contracts数据库contacts表
b)
2.单元测试的步骤
a) 在清单文件中配置依赖的库 <uses-library android:name="android.test.runner"/>
在application里面
b) 配置测试目标项目
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.TARENA.youlu"></instrumentation>
c.创建测试案例(继承androidTestCase)
3.contactManager
查所有的联系人
根据联系人的头像id查联系人的头像
对联系人信息和头像信息进行缓存
在以上基础上继续查询Data表中的数据(mimetype,DATA1)
根据以下判断mimetype的类型是何种类型数据进行分类
public final static String TYPE_NAME = "vnd.android.cursor.item/name";
public final static String TYPE_EMAIL = "vnd.android.cursor.item/email_v2";
public final static String TYPE_PHONE = "vnd.android.cursor.item/phone_v2";
public final static String TYPE_ADDRESS = "vnd.android.cursor.item/postal-address_v2";
4.MyBaseAdapter的封装
5.ContactAdapter
Day_03
Bitmap (图像的绘制)
1.圆形头像的处理
a) 根据头像的大小创建画布
b) 在画布上先画一个(作为背景)
c) 设置画笔的图片的交叉模式Mode.SRC-IN;
d) 继续用画笔画方形的头像(作为前景)
e) 继续用画笔画圆形边框(白色)
f) 将整个画布的bitmap对象返回
2.添加联系人的信息
a) 通过自定义的对话框,调用系统的添加联系人的Activity实现联系人的添加ContactsContract.Intents.SHOW_OR_CREATE_CONTACT
3.编辑联系人的信息
a) 通过自定义的对话框,调用系统的编辑联系人的Activity实现联系人的编辑intent.ACTION_EDIT
i. URI:content://contacts/people/id
4.删除联系人的信息
a) 先删除联系人的账户信息,再删除联系人数据信息
b) 删除时候设置删除条件,条件为联系人的id
Day04
1.通过分析通话记录的Ui效果图
抽取出通话记录的实体类
编号
姓名
电话号码
通话时间
通话类型
头像的id
2.通话时间格式化的思路
如果是当天打得
通话时间为:HH:mm形式
前一天
通话时间为:昨天
如果是一周以内打的:
通话时间为:星期几
如果是一周之前
通话时间为:年-月-日
Data ,SimpleDataFormat,Canlender
Day_04总结
1.通话记录
通话记录的查看
Calllog.Calls
通话记录的删除
根据通话记录的对象id实现通话记录的删除
1.从表中将通话记录删除
2.从适配器中删除,更新
2.练习CalllogAdapter适配器的编写注意控件的优化处理
3.拨打电话
MediaPlayer:音频和视频的播放
SoundPool 音效池
查看:
在数据库中calls表中查看通话记录,创建实体类Calllog封装要查看的属性
在ContactManager中get方法得到calllog记录,呈现在UI上(通过listview),因此还需要
写xml布局,然后编写适配器CalllogAdapter,getView (主要就是编写),在CalllogFragment中关联适配器。就可得到通话记录。
删除:根据通话记录对象的id删除(ContentResolver)删除后要更新。
Day_05
1.动态的创建拨号键盘的创建
所有的键盘文本存中数组中
循环该数组在循环过程中动态创建
TextView对象并设置textVeiw的属性
布局参数的创建(width。Height)
通过布局参数设置每个按键的对齐规则
2.SoundPool的音效池
实例化soundpool对象
添加音效加载完毕时的监听
加载音效
在监听器的回掉方法中调用play方法播放音效、
音效的释放