android自定义View:纯canvas绘制的体重刻度尺

本文介绍了如何使用Canvas在Android中实现一个可滑动的体重刻度尺,包括绘制刻度、手势识别和属性动画的应用。通过学习HenCoder系列,实现了从canvas小白到能编写自定义View的转变。示例代码展示了如何处理滑动事件,以及创建遮罩层实现两端透明度变化的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个体重刻度尺
废话不多说,先上效果图

  • 在此特别感谢扔物线的HenCoder系列,目前已更新了8章内容,让我从一个纯canvas小白变成了canvas小菜。
  • 刻度尺效果是仿写HenCoder公众号中《仿写酷界面》中的薄荷健康的滑动卷尺效果,效果图如下:
  • 这里写图片描述
  • 网上已经有很多大神都写过类似的刻度尺,我是抱着学习canvas的态度来写的,做得不好还请指教

需求分析

  1. 绘制刻度
  2. 可滑动,滑动停止后自动移动到最近刻度
  3. 增加了两边透明度变化

涉及知识点

  1. canvas绘制
  2. 属性动画
  3. GestureDetector手势识别器

大概的实现过程

首先放上所有成员变量

/**
 * 最大的滑动速度
 */
private static final int MAX_FLING_SPEED = 6000;

private static final String KG = "kg";
private static final int ONE_KG = 1000;
/**
 * 最大的可滑动过去的体重数 默认:3公斤
 */
private static final int MAX_FLING_WEIGHT = 3000;
/**
 * 最大的滑动动画持续时间
 */
private static final int MAX_FLING_WEIGHT_DURATION = 1000;

private LinearOutSlowInInterpolator mLinearOutSlowInInterpolator = new LinearOutSlowInInterpolator();
/**
 * 最小体重:30kg
 */
private int minWeight = 30000;
/**
 * 最大体重:200.0kg
 */
private int maxWeight = 200000;
/**
 * 默认体重为60.0kg
 * 数字单位为g
 */
private int bodyWeigh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值