太懒了,以前没有记录过开发用到的技术,时间久了发现脑子很乱,会什么接触过什么都无法想起,所以。。。
开整
1.先定义所需动画以dialog形式管理
2.自定义Button对其按下移动弹起事件进行管理
3.调用系统的MediaRecorder实现录音功能
只列出部分源码,下有源码地址
public class VideoButton extends Button {
Context context;
private VedioDialog dialog;//语音动画dialog
private Float onKeyDown,onKeyMove;//按下时坐标,移动后坐标
private long onKeyDownTime,OnKeyUpTime,recordTime;//按下时间,弹起时间,录音时间
private AudioRecorder mAudioRecorder;//实例录音
private boolean IsRecordOn = false;//是否在录音
private boolean IsCancle = false;//是否取消录音
private RecordListener listener;
private String path;
public VideoButton(Context context) {
super(context);
// TODO Auto-generated constructor stub
init(context);
}
public VideoButton(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
init(context);
}
private void init(Context context) {
this.context = context;
this.setText(R.string.video_hold_speak);
dialog = new VedioDialog(context);
dialog.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
// TODO Auto-generated method stub
((VedioDialog) dialog).reInit();
}
<