android 通讯录字母排序,Android仿微信联系人字母排序效果

本文实例为大家分享了Android联系人字母排序的具体代码,供大家参考,具体内容如下

594b152b7b5800034a064c330fd02c39.gif

实现思路:首先说下布局,整个是一个相对布局,最下面是一个listview,listview上面是一个自定义的view(右边显示字母),最上面是一个textview(屏幕中间的方块)。

首先说一下右边自定义view,字母是画到view上面的,首先计算一下view的高度,然后除以存放字母数组的长的,得到每个字符的高度;每个字母的宽度都是一样的,所以这里直接设置30sp;

listview显示的是108个梁山好汉的名字;

项目里面使用了一个pinyin4j.jar把每个名字转换为拼音,然后使用charAt(0)获得拼音的第一个字母;

listview的每个item是一个线性布局包裹的两个textview,上面的tv显示的是拼音的第一个字母,下面的tv显示的就是名字;在adapter判断当前条目和上一个条目的拼音首字母是否相同,如果相同隐藏当前item上面的tv;

然后在自定义view设置一个自定义监听;当点击自定义view的时候根据高度判断当前点击的是那个字母,然后根据字母设置listview要跳转的位置;

首先看下布局:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:id="@+id/listview"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:cacheColorHint="@android:color/transparent" >

android:id="@+id/quickindexbar"

android:layout_width="30dp"

android:layout_height="match_parent"

android:layout_alignParentRight="true"

/>

android:visibility="gone"

android:id="@+id/tv_hint"

android:gravity="center"

android:layout_centerInParent&

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值