您的位置:首页 > 移动开发 > Android开发

Android Contacts之三自定义的联系人列表特效

2016-09-30 13:33 519 查看

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);


总结

本文在上一篇文章的基础上做了中文索引的支持,增加了关键字搜索以及关键字高亮,添加联系人,多屏适配等等功能,还有诸多小细节就不一一说明了,感兴趣的 朋友可以查看源码研究一二。

源码下载

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: