Android-自定义联系人快速索引】的更多相关文章

效果图: 布局去指定 view.custom.shangguigucustomview.MyCustomIndexView 自定义View对象 <!-- 自定义联系人快速索引 --> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layo…
Android 自定义支持快速搜索筛选的选择控件 项目中遇到选择控件选项过多,需要快速查找匹配的情况. 做了简单的Demo,效果图如下: 源码地址:https://github.com/whieenz/SearchSelect 这个控件是由Dialog+SearchView+ListView实现的.Dialog用来承载选择控件,SearchView实现输入,ListView展示结果.设计概要图如下: 一.自定义Dialog Dialog布局文件 <?xml version="1.0&quo…
在有些Android应用中,为了方便快速定位,经常会看到屏幕右侧有一个字母索引表,今天尝试使用自定义View的方式实现了索引表的基本布局. 字母索引表的样式如下面的示意图所示, 此时我们至少需要知道以下几个参数值:1.字母大小;2.单个字母所在区域的宽度;3.单个字母所在区域的高度.现在看如何实现: /** * 26个英文字母以及一个#字符,#字符是为了索引非英文字母的内容,比如电话号码. */ private String[] mAlphabetTable = { "A", &quo…
在项目中遇到一个需要通过某个字的值筛选匹配带出其他信息的需求,在这里将实现思路整理出来. 源码地址:https://github.com/whieenz/SearchSelect 先看效果图 上图中的示例是通过姓名模糊匹配,然后将匹配到的信息显示到结果区域,通过点击目标信息带出其他详细信息例子. 实现原理 先看界面布局简图 从图中可以看出该功能主要包含搜索区域.顶层.底层.结果区域(RecycleView).空白区域五个模块. 搜索区域:核心原理EditView 采集模糊匹配条件,同时给Edit…
最近需要实现一个城市列表的快速索引功能.类似于联系人应用,根据姓名首字母快速索引功能. 要实现这个功能只需要解决两个问题:1.对列表进行分组(具有同一特征),并且能够快速定位到该组的第一项 2.右侧分组‘特征’快速索引栏的实现第一个问题比较好解决,列表项可以根据相同的‘特征’来分组,比如说城市列表可以根据相同首字母的城市名来进行分组. 如何来定位到分组的第一项,只需要把分组的‘特征’和分组第一项下标关联起来,快速索引栏就能快速定位分组第一项第二个问题可以通过自定义控件来实现,实现的形式有很多,可…
上一篇文章虽然实现了ListView 快速索引的效果,但是有一个小小的Bug.这个Bug我在前面也说了,这篇文章就来解决这个Bug. 我研究的时候发现只要showBg值为true,中间的字母就显示,而当showBg 的值为false的时候中间的字母就可以消失.只要SlideBar的状态为ACTION_DOWN和ACTION_MOVE 的时候showBg的值为true,而ACTION_UP的时候showBg的值就为false: 所以根据上面这个特征,我们只要把OnToucheLetterChang…
快速索引 (对View的自定义) 快速索引应用场景: 微信好友列表, 联系人通讯录, 应用管理, 文件管理等. 快速索引7步曲: *1. A-Z索引的绘制. * 2. 处理Touch事件. * 3. 提供使用监听\回调 * 4. 汉字转换成拼音. * 5. 进行排序展示. * 6. 进行分组. * 7. 将自定义控件和ListView合体. 1.A-Z索引的绘制 protected void onDraw(Canvas canvas) { for (int i = 0; i < LETTERS.…
在上一篇文章中,我和大家一起实现了类似于Android系统联系人的分组导航和挤压动画功能,不过既然文章名叫做<Android系统联系人全特效实现>,那么没有快速滚动功能显然是称不上"全"的.因此本篇文章我将带领大家在上篇文章的代码基础上改进,加入快速滚动功能. 如果还没有看过我上一篇文章,请抓紧去阅读一下 Android系统联系人全特效实现(上),分组导航和挤压动画 . 其实ListView本身是有一个快速滚动属性的,可以通过在XML中设置android:fastScrol…
要实现这种功能,只需要在   android系统联系人分组特效实现(1)---分组导航和挤压动画  的基础上再加上一个自定义控件即可完成. 1.新建项目,继续新建一个java类,BladeView,用于作为导航栏 public class BladeView extends View {     private Handler handler = new Handler();     public BladeView(Context context, AttributeSet attrs) {…
[Android]如何快速构建Android Demo 简介 在 Android 学习的过程中,经常需要针对某些项目来写一些测试的例子,或者在做一些 demo 的时候,都需要先写 Activity 然后注册. 如果里面有太多的跳转的话,还需要每个跳转都增加一个事件.这些都是非常繁琐的步骤.那么如何省略这些步骤呢? 有一种办法就是使用 Fragment,然后按照"约定大于配置"的原则,遍历安装包下符合条件的 Fragment 然后自动构建目录索引与跳转动作. 通俗来讲,就是把 APK 里…