Android自定义T9拨号键盘,Android拨号盘 支持T9搜索和号码搜索等拨号盘案例
之前做通讯录软件,其中在做拨号盘的时候一直为怎么实现T9输入烦恼,上网找了很多帖子,都没有满意的答案。
不过最后终于是实现了,看社区内好像也有不少朋友需要,在此分享一下。
这个是在我项目中提取出来的拨号盘案例,功能上完全实现了目前其他通讯录中拨号盘的功能,但在加载效率上还有不足,请各位大侠指教。
有图有真相:
目前我用1g单核cpu的索爱mt15i的测试机,1500多的联系人,加载时间大概在8秒左右,当然,一般用户不会有这么多联系人的。
由于我做的程序不是在一开始的界面就是拨号盘,所以我在程序已开始就在后台异步加载联系人,
等到拨号盘的界面,联系人加载也差不多完成了。
不过我觉得每次在程序开始都读取联系人的数据,把他们整理成t9搜索需要的数据有些慢,
最好还是自己建张表来存放,然后监听联系人表的变化动态更新t9数据。
如果大家有更好更快的想法,希望能分享一下!
部分代码:
public class ToPinYin {
/**
* 将传递的汉字list转换成拼音List
* @param list
*/
public static List getPinyinList(List list){
List pinyinList = new ArrayList();
for(Iterator i=list.iterator(); i.hasNext();) {
String str = (String)i.next();
try {
String pinyin = getPinYin(str);
pinyinList.add(pinyin);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
}
return pinyinList;
}
/**
* 将中文转换成拼音
* @param 拼音-汉字
* @return
*/
public static String getPinYin(String zhongwen)
throws BadHanyuPinyinOutputFormatCombination {
String zhongWenPinYin = "";
char[] chars = zhongwen.toCharArray();
for (int i = 0; i < chars.length; i++) {
String[] pinYin = PinyinHelper.toHanyuPinyinStringArray(chars[i], getDefaultOutputFormat());
// 当转换不是中文字符时,返回null
if (pinYin != null) {
zhongWenPinYin += pinYin[0];
} else {
zhongWenPinYin += chars[i];
}
}
return zhongWenPinYin;
}
/**
* 输出格式
*
* @return
*/
private static HanyuPinyinOutputFormat getDefaultOutputFormat() {
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.UPPERCASE);// 大写
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 没有音调数字
format.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);// u显示
return format;
}
Android自定义T9拨号键盘,Android拨号盘 支持T9搜索和号码搜索等拨号盘案例相关推荐
- android 自定义数字软键盘,Android自定义键盘的实现(数字键盘和字母键盘)
在项目中,产品对于输入方式会有特殊的要求,需要对输入方式增加特定的限制,这就需要采用自定义键盘.本文主要讲述数字键盘和字母键盘的自定义实现. 自定义键盘的实现步骤如下: 自定义CustomKeyboa ...
- Android 自定义安全软键盘 SafeKeyboard 开发详细说明 2.0
Android 自定义安全软键盘 SafeKeyboard 开发详细说明 2.0 源码地址:GitHub: https://github.com/SValence/SafeKeyboard 注意 ...
- android 自定义本地验证码demo,Android 自定义验证码输入框的实例代码(支持粘贴连续性)...
需求 1.能自定义输入框个数和样式 2.支持长按粘贴或剪切板内容自动填充(粘贴连续性) 其中第2点是最为重要的,正是其他人没有这点,逼得自己弄一个 示例 别人的示例: 粘贴居然不支持连续性,只能粘贴第 ...
- 小米计算机弹歌曲,趣味冷知识!小米的T9拨号键盘可以弹乐曲,没想到吧!快来试试!...
小伙伴们,大家好,小编是[漫画与笑话每一天],今天要为大家介绍的是:冷知识,它可以让人增长见识,开阔视野,还能启迪思维,引发强烈求知欲.和"冷笑话"属于另类幽默一样,冷知识虽冷门但 ...
- Android自定义输入法软键盘
1 功能描述 触屏设备主界面中有一个文本编辑框,底部区域固定显示一个数字键盘,键盘中除数字键外,还带有*和#键功能: 提供一个自定义的数字输入法,生成apk安装包文件,嵌入到img镜像文件中去. 2 ...
- Android自定义记账软键盘(仿鲨鱼记账的记账功能)
鲨鱼记账App效果: 本文实现的效果图: 本文 不是什么原理分析,属于使用工具,不再具体分析.直接贴图贴代码了 自定义软键盘的XML模版 注:android:codes的值,请参考ASCII < ...
- Android 自定义数字虚拟键盘
大概两年没写文章了,有些生疏,不知如何动笔,很早以前有过转行的想法,想过考公务员,所以重心不在程序上.近期通过内推的形式入职了一家大公司(社保公积金缴全额,双休,带薪十三天年假,少加班),这么好的福利 ...
- Android自定义文件路径箭头,Android自定义ViewGroup实现带箭头的圆角矩形菜单
本文和大家一起做一个带箭头的圆角矩形菜单,大概长下面这个样子: 要求顶上的箭头要对准菜单锚点,菜单项按压反色,菜单背景色和按压色可配置. 最简单的做法就是让UX给个三角形的图片往上一贴,但是转念一想这 ...
- android自定义view生命周期,android基础之自定义view
一.Custom View 1.view的继承关系 view继承关系.png 2.Android 如何绘制试图层次 当activity获取焦点时,它必须提供layout层次的根节点,然后android ...
- android 自定义相机源码,Android 自定义相机及分析源码
Android 自定义相机及分析源码 使用Android 系统相机的方法: 要想让应用有相机的action,咱们就必须在清单文件中做一些声明,好让系统知道,如下 action的作用就是声明action ...
最新文章
- 【linux】图形界面基础知识(X、X11、GNOME、Xorg、KDE的概念和它们之间的关系)
- 皮纹生物识别多元智力测量的科学原理
- nginx常用功能全揭秘(内附福利!!!)
- 在ASP.Net中两种利用CSS实现多界面的方法(转)
- 从零开始学习Hadoop--第2章 第一个MapReduce程序
- CSS实现垂直居中布局
- 做系统的U盘如何格式化
- 小米10S继承“祖传”三重快充:50W有线+30W无线+10W反充
- ThreeJS 实现等值线效果
- calloc()函数
- 公众号网课查题-掘光者题库系统
- 使用TextPaint实现自由加粗字体:BoldTextView,支持中粗
- ProxySQL+MGR实现读写分离和主节点故障无感知切换
- matlab设置命令行窗口和编辑器上下显示
- 摄影图片分享网站项目制作总结
- MATLAB技术沙龙之如何批量处理图像的大小
- 【CNC——第9.1篇】使用Setup引导程序整定步进电机(开环步进电机整定方式之1)
- Drupal 常用模块汇总
- 输入股票代码判断深市还是沪市,python
- 张瑞申教授SSRN论文数据公开 | 公司层面气候变化暴露指数
热门文章
- JavaWeb学习心得
- MessageDigest 详解
- CImageList用法介绍
- MODIS数据火点提取方法
- 怎么打开计算机管理模板,win10系统打开组策略弹出管理模板提示框怎么办
- 关于Win10系统下VIA HD AUDIO威盛声卡没声音问题 - 有效解决办法
- 计算机网络专业运动会入场式,高校运动会方阵入场式花样百出
- 每个极客都应该知道的Linux命令
- 小米浏览器禁用java_小米手机调试总出现“INSTALL_CANCELED_BY_USER”
- java jsp试卷_JSP试题-带答案