android音量动画,Android音量控制设计之ProgressView

本文介绍了一个自定义的Android音量控制组件ProgressView,通过旋转或拖动来调整音量。该组件根据旋转角度改变音量移动速度和归位速度,并提供了音量改变接口。实现包括重写onMeasure()、onDraw()和onTouchEvent(),以及详细的代码实现。

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

效果图

954bae91262a?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

ScreenGif4.gif

可以通过旋转view或者直接拖动来控制进度。

根据旋转角度,音量的移动速度会改变

根据旋转角度,归位时候的速度会改变

实现流程

重写onMeasure(),使得高度为外部矩形的高度+padding。

重写onDraw(),绘制两个矩形和一个球。

重写onTouchEvent()判断是点击小球移动还是旋转控件移动,并且判断点击是控件左半部分还是右半部分,在手指抬起时,执行归为动画。

设置音量改变接口供外部使用。

使用

记得要在外层Linearlayout中要添加clipChildred=false。。

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:clipChildren="false"

tools:context=".MainActivity">

android:textSize="14sp"

android:textColor="#333333"

android:id="@+id/tv"

android:gravity="center"

android:layout_marginTop="100dp"

android:layout_marginBottom="20dp"

android:text="音量 :"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

android:id="@+id/voice"

android:paddingLeft="20dp"

android:paddingRight="20dp"

android:layout_width="match_parent"

android:layout_height="wrap_content" />

代码

public class ProgressView extends View {

private static final String TAG = "HappyVoiceView";

/**

* 外层矩形框画笔

*/

private Paint outRectPaint;

/**

* 内层矩形框画笔

*/

private Paint innerR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值