首先,整体界面分三部分,最上层自定义ActionBar相信不需要我讲大家就能看出来了。
中间部分是文字动弹部分,主体就是一个设置了Padding(margin)的EditText,在EditText下面是一个剩余输入字数的描述。其实在“您还可以输入XX字”的左边还有一个用于显示录音图标的ImageView.
最下层是本文主要讲解的录音自定义控件的实现。
下面一整块整体都是自定义控件的区域,我将其命名为RecordButton,是一个继承自RelateiveLayout的ViewGroup。
在其中包括了左中右三个ImageView:试听与删除,中间的录音按钮。
在录音按钮的上下各有一个用于提示的TextView。
整体布局的载入可以通过调用 View.inflater(cxt, R.layout.xxx, null);就行了。
同前一篇讲的一样,作为控件界面控制逻辑,我们主要看一下onTouchEvent方法:当手指按下的时候,初始化录音器。手指在屏幕上移动的时候如果滑到按钮之上的时候,event.getY会返回一个负值(因为滑出控件了嘛)。这里我写的是-50主要是为了多一点缓冲,防止误操作。
先来看代码
@Override
public boolean onTouchEvent(MotionEvent event) {
if (mAudioFile == nu