重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
仿微信联系人列表字母侧滑控件, 侧滑控件参考了以下博客:
10年积累的网站制作、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有黄山免费网站建设让你可以放心的选择与我们合作。Android实现ListView的A-Z字母排序和过滤搜索功能
首先分析一下字母侧滑控件应该如何实现,根据侧滑控件的高度和字母的数量来平均计算每个字母应该占据的高度。
在View的onDraw()方法下绘制每一个字母
protected void onDraw(Canvas canvas) { super.onDraw(canvas); int height = getHeight();// 获取对应高度 int width = getWidth(); // 获取对应宽度 int singleHeight = height / getData().size();// 获取每一个字母的高度 for (int i = 0; i < getData().size(); i++) { mPaint.setColor(getLetterColor());//绘制字母的颜色 mPaint.setTypeface(Typeface.DEFAULT); mPaint.setAntiAlias(true); mPaint.setTextSize(singleHeight); // 如果是选中的状态 if (i == mPosition) { mPaint.setColor(getLetterPressedColor()); mPaint.setFakeBoldText(true); } // x坐标等于总体宽度中间的位置减去字符串宽度的一半. float xPos = width / 2 - mPaint.measureText(getData().get(i)) / 2; float yPos = singleHeight * i + singleHeight; canvas.drawText(getData().get(i), xPos, yPos, mPaint); mPaint.reset();// 重置画笔 } }