某日用微信语音功能聊天,发现当我使用语音功能时,会弹出一个窗口,窗口中间有一个控件会实时的显示我说话声音的大小(即分贝)。当时觉得挺好玩,决定也仿制一个,效果如下
分析控件显示效果,可判断左边是一个imgview,右边是一个可以根据实时音量大小绘制梯度显示的自定义view。那就先解决这个自定义view。
我们可以把这个自定义view看成是一个上宽下窄的梯形,而且在纵向上等间距的着墨绘制。用一张图或许可以更好的表示。
上图是一个在笛卡尔坐标系中的梯形图,上底下底平行于X轴,startX对应的点是斜线的出发点,斜线在x轴方向上的偏移量mDx与y轴上偏移量mDy的关系mDx=K*mDy;mDyFill对应的区域是着墨区,mDyEmpty对应的是空白区,且mDy=mDyFill+mDyEmpty.我们可以通过修改以上数值进而修改着墨的区域。因为该自定义view不会在多处使用
Android 仿微信语音聊天音量大小显示控件
最新推荐文章于 2023-07-21 17:30:10 发布