Contacts系列文章
Android Contacts之一联系人列表特效
Android Contacts之二根据4.4实现的联系人列表特效
Android Contacts之三自定义的联系人列表特效
简介
前面一篇文章写了android4.4下的Contacts联系人列表的UI效果,但对于中文的字母索引、关键字搜索、屏幕适配等功能都没有实现,本文就把这些实战中会用的功能都是实现了。
滑动效果
搜索联系人
添加联系人
重要知识点
中文转拼音
CnToCharParser.java 可以参考我的这篇文章android中获取拼音的类文字高亮
public static String matcherSearchTitle(String title,String keyword){
String content = title;
String wordReg = "(?i)"+keyword;//用(?i)来忽略大小写
StringBuffer sb = new StringBuffer();
Matcher matcher = Pattern.compile(wordReg).matcher(content);
while(matcher.find()){
//这样保证了原文的大小写没有发生变化
matcher.appendReplacement(sb, "<font color=#33B5E5>"+matcher.group()+"</font>");
}
matcher.appendTail(sb);
content = sb.toString();
return content;
}
- Sidebar优化
在Sidebar的基础上,优化了sidebar不居中的问题,修改代码如下:
@Override
protected void onDraw(Canvas canvas) {
...
for (int i = 0; i < getLettersSize(); i++) {
float measureTextHeight = this.mPaint.measureText(mLetters[i]);
float letterPosY = mLetterHeight * (i+1) + getPaddingTop()-(mLetterHeight-measureTextHeight)/2;
...
}
}
- 添加联系人系统接口
Intent intent = new Intent(Intent.ACTION_INSERT, Contacts.CONTENT_URI);
startActivity(intent);
总结
本文在上一篇文章的基础上做了中文索引的支持,增加了关键字搜索以及关键字高亮,添加联系人,多屏适配等等功能,还有诸多小细节就不一一说明了,感兴趣的 朋友可以查看源码研究一二。