一 :具体说下思路(注意:一下代码如果没有显示则访问     https://www.jianshu.com/p/2da89b56871f   )

1 :整体用到的控件,list view(recyclerView原理一样),自定义view,汉字转拼音的utils工具类.

2:MainActivity的xml简单就不说了,下面看代码,说下自定义View,首先自定义类继承View重写三个构造方法,重写

onMeasure()的方法用于测量View的宽高,onSizeChanged()方法改变当前控件大小的时候调用,onDarw()方法绘制View,
onTouchEvent()方法用于手势监听,自定义接口用于保存点击了那个字母的值。

3:数据实体类必须 实现Comparable<泛型为当前类名> 接口,用于获取汉字的首字母和字母排序。

4在list的Adaptes里面根据position的首字母来作为目录catalog。通过getPositionForSection(此方法为自定义的)方法,来获取catalog的首次出现的位置。如果当前位置(position)等于该分类首字母的Char的位置 ,则认为是第一次出现,则首字母显示,否则隐藏,此判断是为了避免出现相同的字母。

5:在接口回调的方法里面,遍历list集合(为数据集合).getFirstLetter()方法获取到集合的每条数据的首字母,和接口回传的字母通过equalsIgnoreCase(此方法用于和回传的字母匹配)方法匹配。成功list就掉用setSelection(i)定位到首字母出现的位置。

思路完毕,下面就贴代码:

二   代码实现:

1  MainActivity 的xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"
"><ListViewandroid:id="@+id/mListView"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_toLeftOf="@+id/mYunFengView"android:scrollbars="none"></ListView><com.example.yangai00.yy_2018_6_29.mudel.home.chengshi.YunfengViewandroid:id="@+id/mYunFengView"android:layout_width="40dp"android:layout_height="match_parent"android:layout_alignParentRight="true" /><TextViewandroid:visibility="gone"android:id="@+id/mDaZiMu2"android:layout_width="60dp"android:layout_height="60dp"android:layout_centerInParent="true"android:background="@drawable/dzm"android:gravity="center"android:text="A"android:textSize="30dp" /></RelativeLayout>

2  自定义VIew

package com.example.yangai00.yy_2018_6_29.mudel.home.chengshi;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;/*** Created by yangai00 on 2018/7/10.*/public class YunfengView extends View {private String[] yuns = {"↑", "

Android 自定义View 仿微信好友,字母排序相关推荐

  1. android旋转不重绘,Android自定义view仿微信刷新旋转小风车

    本文实例为大家分享了Android仿微信刷新旋转小风车 具体代码,供大家参考,具体内容如下 不太会录像,没办法,智能截图了 不多说了,直接上代码 package com.shipneg.demoysp ...

  2. android 微信朋友圈 全功能,Android仿微信朋友圈文字展开全文功能 Android自定义TextView仿微信朋友圈文字展开全文功能...

    Android自定义TextView仿微信朋友圈文字信息,展开全文功能 代码及注释如下: 首先写一个xml文件 showmore.xml: android:orientation="vert ...

  3. android 微信朋友圈 全功能,Android自定义TextView仿微信朋友圈文字展开全文功能

    Android自定义TextView仿微信朋友圈文字信息,展开全文功能 代码及注释如下: 首先写一个xml文件 showmore.xml: android:orientation="vert ...

  4. Android仿支付宝UI功能开发,Android 自定义view仿支付宝咻一咻功能

    支付宝上有一个咻一咻的功能,就是点击图片后四周有水波纹的这种效果,今天也写一个类似的功能. 效果如下所示: 思路: 就是几个圆的半径不断在变大,这个可以使用动画缩放实现,还有透明动画 还有就是这是好几 ...

  5. android 高仿 探探卡片滑动,Android自定义View仿探探卡片滑动效果

    Android自定义View仿探探卡片滑动这种效果网上有很多人已经讲解了实现思路,大多都用的是RecyclerView来实现的,但是我们今天来换一种实现思路,只用一个自定义的ViewGroup来搞定这 ...

  6. android wear支付宝6,Android自定义View仿支付宝输入六位密码功能

    跟选择银行卡界面类似,也是用一个PopupWindow,不过输入密码界面是一个自定义view,当输入六位密码完成后用回调在Activity中获取到输入的密码并以Toast显示密码.效果图如下: 自定义 ...

  7. android的动态tab,Android自定义view仿QQ的Tab按钮动画效果(示例代码)

    话不多说 先上效果图 实现其实很简单,先用两张图 一张是背景的图,一张是笑脸的图片,笑脸的图片是白色,可能看不出来.实现思路:主要是再触摸view的时候同时移动这两个图片,但是移动的距离不一样,造成的 ...

  8. [GitHub开源]Android自定义View实现微信打飞机游戏

    之前写了很多自定义View理论方面的文章,具体可以参见<Android中自定义View.ViewGroup理论基础详解> . 理论指导实践,本博文演示了如何通过自定义View实现微信打飞机 ...

  9. oracle number型步数,Android自定义View仿QQ计步器

    自定义计步器 Android自定义View是Android开发中比较重要的一项,也是很多开发者比较怕的一个东西.其实只要认真去学习,自定义View其实没有那么可怕:相反的,我们还能从自定义View中找 ...

最新文章

  1. 微信小程序textArea组件字数限制
  2. mybatis框架--学习笔记(下)
  3. 掌握AI核心技术没有秘籍,能自己创造就是王道
  4. Android开发之虹软人脸识别活体检测SDK包Bitmap转NV21方法
  5. php curl重用,使用PHP CURL解析负载较重的站点?
  6. pyqt开发的程序模板_小程序定制开发和模板开发要多少钱?有什么区别?
  7. 图像入门二之视频操作
  8. webpack-dev-server
  9. css 样式(checkbox开关、css按钮)
  10. sse java8_Java SSE 服务器推送WEB页面接收数据
  11. 网络攻防第七周作业之20189304李小涛
  12. Jquery(十)jqueryUI常用功能实战
  13. “互联网+”带给云计算的机会
  14. Django使用pyjwt实现Token跨域认证登录过程实践
  15. i7 8700 服务器系统,i7 8700k 云服务器
  16. Java实习生常规技术面试题每日十题Java基础(二)
  17. 盘古开源在芯片领域崛起,专注于芯片研发
  18. numpy数组和图片互转
  19. python数组分成两个和相等的子集_javascript,_动态规划——把一个整数数组分成两个和相等的子集,怎么写,javascript - phpStudy...
  20. vue实现登录时的图片验证码(纯前端)

热门文章

  1. SOC芯片的功耗管理策略
  2. 链表ListNode基本用法,力扣第2题,两数相加
  3. [MiscCrypto]鹤壁杯部分wp
  4. VuxUI使用历程:【003】Vux组件使用之FormPreview组件、X-input组件、Loading 组件
  5. 嵌入式3D人脸识别(笔记)
  6. 商品分类CURD操作以及查询总级嵌套(lyj)
  7. 【推免经验分享】——文书高效处理工具汇总,看这一篇就够了!
  8. 安装乌班图(Ubuntu)系统后使用xshell等ssh工具连接不上
  9. 熊猫烧香被恶搞 网友爆笑诗词句大集合(转)
  10. 【视频】零基础neovim搭建Java IDE