Android 绘图进阶:Canvas绘制联系人侧滑列表(drawText+监听者模式)

本文将介绍如何使用Android的Canvas绘制联系人侧滑列表,包括绘制右侧字母、实现手势滑动监听、点击字母颜色变化及监听者模式的应用。通过详细步骤和完整代码,助你实现类似手机联系人应用的功能。
摘要由CSDN通过智能技术生成

这里写图片描述
  上面展示的是效果图,我们平时使用的通过点击字母就能找到相关字母的联系人,这就是我们想要达到的效果。

思路与步骤

  根据我们想要实现的效果,我们先要理一理思路,所有的编程都是这样,有了清晰的思路才能确定每一步我们具体要做什么。
  首先我们想要出现手机联系人的效果,就要先绘制右侧的字母,再对屏幕的手势滑动进行监听,使字母在被点击时变色,然后是我们的布局中的TextView内容的改变,这里TextView的改变我们需要用到监听者模式。

1、绘制右侧字母

思路:使用drawtext方法循环从上到下进行绘制。
根据屏幕高度,设置字体大小

//必须写在onMeasure方法中,
//如果写在构造器中,由于开始的时候没有及时获得宽高,导致高度默认为0
    mpainttext.setTextSize(height/26f);

String数组,用于循环绘制

    private String[] array=new String[]{
  "a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};

在onDraw方法中进行绘制

   for(int i=0;i<26;i++){
   //由于字母大小不一致,选择宽度最大的'm'相减,作为x轴坐标
      canvas.drawText(array[i], width-mpainttext.measureText("m"), height/26*(i+1), mpainttext);
            }

        }

2、覆写onTouchEvent方法,支持手势滑动

  @Override
public boolean onTouchEvent(MotionEvent event) {

        switch (event.getAction()) {
        //ACTION_MOVE监听手指滑动
case MotionEvent.ACTION_MOVE:       
        //ACTION_DOWN监听手指落下
        case MotionEvent.ACTION_DOWN:
        //获取手指落下的x坐标与Y坐标
            x=event.getX();
  
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值