主叫时通话界面的录音无线网按钮打不开开

按钮功能清单:
1. 按钮显示“按住录音”,按下时文字内容改变为“松开发送”;
2. 按下时间短于1秒时提示“说话时间太短”;
3. 按住后显示正在录音的提示动画,并提示“手指上划,取消发送”;
4. 向上滑动时,提示“松开手指,取消发送”;
5. 达到最大时间限制的前10秒提示倒计时;
6. 按住一段时间后自然松开,保存录音,并返回文件路径。
简单来说,就是实现微信那样的聊天录音功能,供一些用到即时聊天的APP项目使用。
Activity:
&code class="hljs java has-numbering" style="display: padding: 0 color: box-sizing: border- font-family: "Source Code Pro",font-size: white-space: border-radius: 0 word-wrap: background:"&&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&package&/span& com.app.acoe.demo.
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& com.app.acoe.demo.R;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& com.app.acoe.demo.view.RecordB
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.app.A
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.os.B
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.widget.TextV
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.widget.T
&span class="hljs-javadoc" style="color: rgb(136, 0, 0); box-sizing: border-"&/**
* 录音按钮Demo
*&span class="hljs-javadoctag" style="color: rgb(102, 0, 102); box-sizing: border-"& @author&/span& Acoe
*&span class="hljs-javadoctag" style="color: rgb(102, 0, 102); box-sizing: border-"& @date&/span&
*&span class="hljs-javadoctag" style="color: rgb(102, 0, 102); box-sizing: border-"& @version&/span& V1.0.0
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-class" style="box-sizing: border-"&&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&class&/span& &span class="hljs-title" style="box-sizing: border- color: rgb(102, 0, 102);"&RecordButtonDemonActivity&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&extends&/span& &span class="hljs-title" style="box-sizing: border- color: rgb(102, 0, 102);"&Activity&/span& {&/span&
&span class="hljs-javadoc" style="color: rgb(136, 0, 0); box-sizing: border-"&/**控件**/&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& TextView txtT
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& RecordButton btnR
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@Override&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&protected&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&onCreate&/span&(Bundle savedInstanceState) {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&super&/span&.onCreate(savedInstanceState);
setContentView(R.layout.record_button_demo_activity);
&span class="hljs-javadoc" style="color: rgb(136, 0, 0); box-sizing: border-"&/**
* 初始化界面
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&initUI&/span&() {
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&// 设置标题&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&this&/span&.txtTitle = (TextView) findViewById(R.id.title_textview);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&this&/span&.txtTitle.setText(&span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-"&"Demo展示"&/span&);
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&// 控件&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&this&/span&.btnRecord = (RecordButton) findViewById(R.id.record_button);
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&//设置语音输入监听&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&this&/span&.btnRecord.setOnFinishedRecordListener(&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& RecordButton.OnFinishedRecordListener() {
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@Override&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&onFinishedRecord&/span&(String audioPath, &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&int&/span& time) {
Toast.makeText(getApplicationContext(), &span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-"&"录音路径:"&/span& + audioPath + &span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-"&"
duration:"&/span& + time, Toast.LENGTH_SHORT).show();
&/code&&ul class="pre-numbering" style="box-sizing: border- position: width: 50 top: 0 left: 0 margin: 0 padding: 6px 0px 40 border-right-width: 1 border-right-style: border-right-color: rgb(221, 221, 221); list-style: text-align: background-color: rgb(238, 238, 238);"&&li style="box-sizing: border- padding: 0px 5"&1&/li&&li style="box-sizing: border- padding: 0px 5"&2&/li&&li style="box-sizing: border- padding: 0px 5"&3&/li&&li style="box-sizing: border- padding: 0px 5"&4&/li&&li style="box-sizing: border- padding: 0px 5"&5&/li&&li style="box-sizing: border- padding: 0px 5"&6&/li&&li style="box-sizing: border- padding: 0px 5"&7&/li&&li style="box-sizing: border- padding: 0px 5"&8&/li&&li style="box-sizing: border- padding: 0px 5"&9&/li&&li style="box-sizing: border- padding: 0px 5"&10&/li&&li style="box-sizing: border- padding: 0px 5"&11&/li&&li style="box-sizing: border- padding: 0px 5"&12&/li&&li style="box-sizing: border- padding: 0px 5"&13&/li&&li style="box-sizing: border- padding: 0px 5"&14&/li&&li style="box-sizing: border- padding: 0px 5"&15&/li&&li style="box-sizing: border- padding: 0px 5"&16&/li&&li style="box-sizing: border- padding: 0px 5"&17&/li&&li style="box-sizing: border- padding: 0px 5"&18&/li&&li style="box-sizing: border- padding: 0px 5"&19&/li&&li style="box-sizing: border- padding: 0px 5"&20&/li&&li style="box-sizing: border- padding: 0px 5"&21&/li&&li style="box-sizing: border- padding: 0px 5"&22&/li&&li style="box-sizing: border- padding: 0px 5"&23&/li&&li style="box-sizing: border- padding: 0px 5"&24&/li&&li style="box-sizing: border- padding: 0px 5"&25&/li&&li style="box-sizing: border- padding: 0px 5"&26&/li&&li style="box-sizing: border- padding: 0px 5"&27&/li&&li style="box-sizing: border- padding: 0px 5"&28&/li&&li style="box-sizing: border- padding: 0px 5"&29&/li&&li style="box-sizing: border- padding: 0px 5"&30&/li&&li style="box-sizing: border- padding: 0px 5"&31&/li&&li style="box-sizing: border- padding: 0px 5"&32&/li&&li style="box-sizing: border- padding: 0px 5"&33&/li&&li style="box-sizing: border- padding: 0px 5"&34&/li&&li style="box-sizing: border- padding: 0px 5"&35&/li&&li style="box-sizing: border- padding: 0px 5"&36&/li&&li style="box-sizing: border- padding: 0px 5"&37&/li&&li style="box-sizing: border- padding: 0px 5"&38&/li&&li style="box-sizing: border- padding: 0px 5"&39&/li&&li style="box-sizing: border- padding: 0px 5"&40&/li&&li style="box-sizing: border- padding: 0px 5"&41&/li&&li style="box-sizing: border- padding: 0px 5"&42&/li&&li style="box-sizing: border- padding: 0px 5"&43&/li&&li style="box-sizing: border- padding: 0px 5"&44&/li&&li style="box-sizing: border- padding: 0px 5"&45&/li&&li style="box-sizing: border- padding: 0px 5"&46&/li&&li style="box-sizing: border- padding: 0px 5"&47&/li&&li style="box-sizing: border- padding: 0px 5"&48&/li&&li style="box-sizing: border- padding: 0px 5"&49&/li&&/ul&
自定义控件:
&code class="hljs java has-numbering" style="display: padding: 0 color: box-sizing: border- font-family: "Source Code Pro",font-size: white-space: border-radius: 0 word-wrap: background:"&&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&package&/span& com.app.acoe.demo.
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& java.io.F
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& com.app.acoe.demo.R;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& com.app.acoe.demo.common.ExtAudioR
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.annotation.SuppressL
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.app.D
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.content.C
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.content.DialogI
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.content.DialogInterface.OnDismissL
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.graphics.drawable.AnimationD
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.media.MediaR
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.os.CountDownT
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.os.E
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.os.H
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.os.M
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.os.V
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.util.AttributeS
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.view.G
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.view.MotionE
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.view.ViewG
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.view.WindowManager.LayoutP
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.widget.B
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&import&/span& android.widget.ImageV
&span class="hljs-javadoc" style="color: rgb(136, 0, 0); box-sizing: border-"&/**
* 自定义语音按钮样式
*&span class="hljs-javadoctag" style="color: rgb(102, 0, 102); box-sizing: border-"& @author&/span& ss
*&span class="hljs-javadoctag" style="color: rgb(102, 0, 102); box-sizing: border-"& @date&/span&
下午4:34:20
*&span class="hljs-javadoctag" style="color: rgb(102, 0, 102); box-sizing: border-"& @version&/span& V1.0.0
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@SuppressLint&/span&(&span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-"&"NewApi"&/span&)
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-class" style="box-sizing: border-"&&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&class&/span& &span class="hljs-title" style="box-sizing: border- color: rgb(102, 0, 102);"&RecordButton&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&extends&/span& &span class="hljs-title" style="box-sizing: border- color: rgb(102, 0, 102);"&Button&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-title" style="box-sizing: border-"&RecordButton&/span&(Context context) {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&super&/span&(context);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-title" style="box-sizing: border-"&RecordButton&/span&(Context context, AttributeSet attrs, &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&int&/span& defStyle) {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&super&/span&(context, attrs, defStyle);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-title" style="box-sizing: border-"&RecordButton&/span&(Context context, AttributeSet attrs) {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&super&/span&(context, attrs);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&setSavePath&/span&(String path) {
File filePath = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& File(path);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span& (!filePath.exists()) {
File file2 = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& File(path.substring(&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&0&/span&, path.lastIndexOf(&span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-"&"/"&/span&) + &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1&/span&));
file2.mkdirs();
mFileName =
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&setOnFinishedRecordListener&/span&(OnFinishedRecordListener listener) {
finishedListener =
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& String mFileName = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&null&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& OnFinishedRecordListener finishedL
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&static&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&long&/span& startT
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& Dialog recordD
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&static&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&int&/span&[] res = { R.drawable.mic_1, R.drawable.mic_2, R.drawable.mic_3,
R.drawable.mic_4, R.drawable.mic_5 };
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&static&/span& ImageV
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& MediaR
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& ObtainDecibelT
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& Handler volumeH
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&static&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&final&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&int&/span& MIN_INTERVAL_TIME = &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1&/span&*&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1000&/span&;&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&// 1s 最短&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&final&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&static&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&int&/span& MAX_TIME = &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&60&/span&*&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1000&/span& + &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&500&/span&;&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&// 1分钟,最长&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&static&/span& String File_Voice = Environment.getExternalStorageDirectory()
.getPath() + &span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-"&"/acoe/demo/voice"&/span&;&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&// 录音全部放在这个目录下&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&final&/span& String
SAVE_PATH = File_V
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&float&/span&
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@SuppressLint&/span&(&span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-"&"HandlerLeak"&/span&)
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&init&/span&() {
volumeHandler = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& Handler(){
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@Override&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&handleMessage&/span&(Message msg) {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span&(msg.what == -&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&100&/span&){
stopRecording();
recordDialog.dismiss();
}&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&else&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span&(msg.what != -&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1&/span&){
view.setImageResource(res[msg.what]);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& AnimationD
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@SuppressLint&/span&(&span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-"&"ClickableViewAccessibility"&/span&)
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@Override&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&boolean&/span& &span class="hljs-title" style="box-sizing: border-"&onTouchEvent&/span&(MotionEvent event) {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&int&/span& action = event.getAction();
y = event.getY();
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span&(view!=&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&null&/span& && y&&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&0&/span&){
view.setBackgroundResource(R.drawable.mic_cancel);
anim.stop();
}&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&else&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span&(view != &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&null&/span&){
view.setBackgroundResource(R.drawable.anim_mic);
anim = (AnimationDrawable) view.getBackground();
anim.start();
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&switch&/span& (action) {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& MotionEvent.ACTION_DOWN:
setText(&span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-"&"松开发送"&/span&);
initDialogAndStartRecord();
anim = (AnimationDrawable) view.getBackground();
anim.start();
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& MotionEvent.ACTION_UP:
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&this&/span&.setText(&span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-"&"按住录音"&/span&);
startTimer.cancel(); &span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&// 主动松开时取消计时&/span&
recordTimer.cancel(); &span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&// 主动松开时取消计时&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span&(y&=&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&0&/span& && (System.currentTimeMillis() - startTime &= MAX_TIME)){
finishRecord();
}&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&else&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span&(y&&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&0&/span&){
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&//当手指向上滑,会cancel&/span&
cancelRecord();
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& MotionEvent.ACTION_CANCEL: &span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&// 异常&/span&
cancelRecord();
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&return&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&true&/span&;
&span class="hljs-javadoc" style="color: rgb(136, 0, 0); box-sizing: border-"&/**
* 初始化录音对话框 并 开始录音
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&initDialogAndStartRecord&/span&() {
startTime = System.currentTimeMillis();
recordDialog = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& Dialog(getContext(), R.style.like_toast_dialog_style);
view = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& ImageView(getContext());
view.setBackgroundResource(R.drawable.anim_mic);
recordDialog.setContentView(view, &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
recordDialog.setOnDismissListener(onDismiss);
LayoutParams lp = recordDialog.getWindow().getAttributes();
lp.gravity = Gravity.CENTER;
startRecording();
recordDialog.show();
&span class="hljs-javadoc" style="color: rgb(136, 0, 0); box-sizing: border-"&/**
* 放开手指,结束录音处理
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&finishRecord&/span&() {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&long&/span& intervalTime = System.currentTimeMillis() - startT
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span& (intervalTime & MIN_INTERVAL_TIME) {
volumeHandler.sendEmptyMessageDelayed(-&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&100&/span&, &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1000&/span&);
view.setBackgroundResource(R.drawable.mic_short);
anim.stop();
File file = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& File(mFileName);
file.delete();
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&return&/span&;
}&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&else&/span&{
stopRecording();
recordDialog.dismiss();
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&//如果有回调,则发送录音结束回调&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span& (finishedListener != &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&null&/span&)
finishedListener.onFinishedRecord(mFileName,(&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&int&/span&) (intervalTime/&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1000&/span&));
&span class="hljs-javadoc" style="color: rgb(136, 0, 0); box-sizing: border-"&/**
* 取消录音对话框和停止录音
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&cancelRecord&/span&() {
stopRecording();
recordDialog.dismiss();
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&//MyToast.makeText(getContext(), "取消录音!", Toast.LENGTH_SHORT);&/span&
File file = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& File(mFileName);
file.delete();
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&//获取类的实例&/span&
ExtAudioRecorder extAudioR &span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&//压缩的录音(WAV)&/span&
&span class="hljs-javadoc" style="color: rgb(136, 0, 0); box-sizing: border-"&/**
* 执行录音操作
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&startRecording&/span&() {
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&// save path&/span&
StringBuilder path = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& StringBuilder(SAVE_PATH).append(&span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-"&"/tmp_sound_"&/span&).append(System.currentTimeMillis()).append(&span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-"&".wav"&/span&);
setSavePath(path.toString());
extAudioRecorder = ExtAudioRecorder.getInstanse(&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&false&/span&); &span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&//未压缩的录音(WAV)&/span&
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&//设置输出文件&/span&
extAudioRecorder.setOutputFile(mFileName);
extAudioRecorder.prepare();
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&//开始录音&/span&
extAudioRecorder.start();
startTimer.start();
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&//震动提醒&/span&
Vibrator vib = (Vibrator) getContext().getSystemService(Context.VIBRATOR_SERVICE);
vib.vibrate(&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&100&/span&);
&span class="hljs-javadoc" style="color: rgb(136, 0, 0); box-sizing: border-"&/**
* 录音开始计时器,允许的最大时长倒数10秒时进入倒计时
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& CountDownTimer startTimer = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& CountDownTimer(MAX_TIME - &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&500&/span& - &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&10000&/span&, &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1000&/span&) { &span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&// 50秒后开始倒计时&/span&
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@Override&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&onFinish&/span&() {
recordTimer.start();
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@Override&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&onTick&/span&(&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&long&/span& millisUntilFinished) {
&span class="hljs-javadoc" style="color: rgb(136, 0, 0); box-sizing: border-"&/**
* 录音最后10秒倒计时器,倒计时结束发送录音
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& CountDownTimer recordTimer = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& CountDownTimer(&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&10000&/span&, &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1000&/span&){
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@Override&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&onFinish&/span&() {
finishRecord();
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@Override&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&onTick&/span&(&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&long&/span& millisUntilFinished) { &span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&// 显示倒计时动画&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&switch&/span& ((&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&int&/span&)millisUntilFinished / &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1000&/span&) {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&10&/span&:
view.setBackgroundResource(R.drawable.mic_count_10);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&9&/span&:
view.setBackgroundResource(R.drawable.mic_count_9);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&8&/span&:
view.setBackgroundResource(R.drawable.mic_count_8);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&7&/span&:
view.setBackgroundResource(R.drawable.mic_count_7);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&6&/span&:
view.setBackgroundResource(R.drawable.mic_count_6);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&5&/span&:
view.setBackgroundResource(R.drawable.mic_count_5);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&4&/span&:
view.setBackgroundResource(R.drawable.mic_count_4);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&3&/span&:
view.setBackgroundResource(R.drawable.mic_count_3);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&2&/span&:
view.setBackgroundResource(R.drawable.mic_count_2);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&case&/span& &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1&/span&:
view.setBackgroundResource(R.drawable.mic_count_1);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&stopRecording&/span&() {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span& (thread != &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&null&/span&) {
thread.exit();
thread = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&null&/span&;
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&/*if (recorder != null) {
recorder.stop();
recorder.release();
recorder =
}*/&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span&(extAudioRecorder != &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&null&/span&){
extAudioRecorder.stop();
extAudioRecorder.release();
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-class" style="box-sizing: border-"&&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&class&/span& &span class="hljs-title" style="box-sizing: border- color: rgb(102, 0, 102);"&ObtainDecibelThread&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&extends&/span& &span class="hljs-title" style="box-sizing: border- color: rgb(102, 0, 102);"&Thread&/span& {&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&volatile&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&boolean&/span& running = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&true&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&exit&/span&() {
running = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&false&/span&;
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@Override&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&run&/span&() {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&while&/span& (running) {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span& (recorder == &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&null&/span& || !running) {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&break&/span&;
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&int&/span& x = recorder.getMaxAmplitude(); &span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&//振幅&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span& (x != &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&0&/span& && y&=&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&0&/span&) {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&int&/span& f = (&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&int&/span&) (&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&10&/span& * Math.log(x) / Math.log(&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&10&/span&));
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span& (f & &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&15&/span&)
volumeHandler.sendEmptyMessage(&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&0&/span&);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&else&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span& (f & &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&22&/span&)
volumeHandler.sendEmptyMessage(&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1&/span&);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&else&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span& (f & &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&29&/span&)
volumeHandler.sendEmptyMessage(&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&2&/span&);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&else&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span& (f & &span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&38&/span&)
volumeHandler.sendEmptyMessage(&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&3&/span&);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&else&/span&
volumeHandler.sendEmptyMessage(&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&4&/span&);
volumeHandler.sendEmptyMessage(-&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&1&/span&);
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&if&/span&(System.currentTimeMillis() - startTime & MAX_TIME){
finishRecord();
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&try&/span& {
Thread.sleep(&span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-"&200&/span&);
} &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&catch&/span& (InterruptedException e) {
e.printStackTrace();
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&private&/span& OnDismissListener onDismiss = &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&new&/span& OnDismissListener() {
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@Override&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&onDismiss&/span&(DialogInterface dialog) {
stopRecording();
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-class" style="box-sizing: border-"&&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&interface&/span& &span class="hljs-title" style="box-sizing: border- color: rgb(102, 0, 102);"&OnFinishedRecordListener&/span& {&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&onFinishedRecord&/span&(String audioPath, &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&int&/span& time);
class CountDown extends CountDownTimer {
&span class="hljs-javadoc" style="color: rgb(136, 0, 0); box-sizing: border-"&/**
*&span class="hljs-javadoctag" style="color: rgb(102, 0, 102); box-sizing: border-"& @param&/span& millisInFuture
*&span class="hljs-javadoctag" style="color: rgb(102, 0, 102); box-sizing: border-"& @param&/span& countDownInterval
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-title" style="box-sizing: border-"&CountDown&/span&(&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&long&/span& millisInFuture, &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&long&/span& countDownInterval) {
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&super&/span&(millisInFuture, countDownInterval);
&span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-"&// TODO Auto-generated constructor stub&/span&
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@Override&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&onFinish&/span&() {
&span class="hljs-annotation" style="color: rgb(155, 133, 157); box-sizing: border-"&@Override&/span&
&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&public&/span& &span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&void&/span& &span class="hljs-title" style="box-sizing: border-"&onTick&/span&(&span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-"&long&/span& millisUntilFinished) {
&/code&&ul class="pre-numbering" style="box-sizing: border- position: width: 50 top: 0 left: 0 margin: 0 padding: 6px 0px 40 border-right-width: 1 border-right-style: border-right-color: rgb(221, 221, 221); list-style: text-align: background-color: rgb(238, 238, 238);"&&li style="box-sizing: border- padding: 0px 5"&1&/li&&li style="box-sizing: border- padding: 0px 5"&2&/li&&li style="box-sizing: border- padding: 0px 5"&3&/li&&li style="box-sizing: border- padding: 0px 5"&4&/li&&li style="box-sizing: border- padding: 0px 5"&5&/li&&li style="box-sizing: border- padding: 0px 5"&6&/li&&li style="box-sizing: border- padding: 0px 5"&7&/li&&li style="box-sizing: border- padding: 0px 5"&8&/li&&li style="box-sizing: border- padding: 0px 5"&9&/li&&li style="box-sizing: border- padding: 0px 5"&10&/li&&li style="box-sizing: border- padding: 0px 5"&11&/li&&li style="box-sizing: border- padding: 0px 5"&12&/li&&li style="box-sizing: border- padding: 0px 5"&13&/li&&li style="box-sizing: border- padding: 0px 5"&14&/li&&li style="box-sizing: border- padding: 0px 5"&15&/li&&li style="box-sizing: border- padding: 0px 5"&16&/li&&li style="box-sizing: border- padding: 0px 5"&17&/li&&li style="box-sizing: border- padding: 0px 5"&18&/li&&li style="box-sizing: border- padding: 0px 5"&19&/li&&li style="box-sizing: border- padding: 0px 5"&20&/li&&li style="box-sizing: border- padding: 0px 5"&21&/li&&li style="box-sizing: border- padding: 0px 5"&22&/li&&li style="box-sizing: border- padding: 0px 5"&23&/li&&li style="box-sizing: border- padding: 0px 5"&24&/li&&li style="box-sizing: border- padding: 0px 5"&25&/li&&li style="box-sizing: border- padding: 0px 5"&26&/li&&li style="box-sizing: border- padding: 0px 5"&27&/li&&li style="box-sizing: border- padding: 0px 5"&28&/li&&li style="box-sizing: border- padding: 0px 5"&29&/li&&li style="box-sizing: border- padding: 0px 5"&30&/li&&li style="box-sizing: border- padding: 0px 5"&31&/li&&li style="box-sizing: border- padding: 0px 5"&32&/li&&li style="box-sizing: border- padding: 0px 5"&33&/li&&li style="box-sizing: border- padding: 0px 5"&34&/li&&li style="box-sizing: border- padding: 0px 5"&35&/li&&li style="box-sizing: border- padding: 0px 5"&36&/li&&li style="box-sizing: border- padding: 0px 5"&37&/li&&li style="box-sizing: border- padding: 0px 5"&38&/li&&li style="box-sizing: border- padding: 0px 5"&39&/li&&li style="box-sizing: border- padding: 0px 5"&40&/li&&li style="box-sizing: border- padding: 0px 5"&41&/li&&li style="box-sizing: border- padding: 0px 5"&42&/li&&li style="box-sizing: border- padding: 0px 5"&43&/li&&li style="box-sizing: border- padding: 0px 5"&44&/li&&li style="box-sizing: border- padding: 0px 5"&45&/li&&li style="box-sizing: border- padding: 0px 5"&46&/li&&li style="box-sizing: border- padding: 0px 5"&47&/li&&li style="box-sizing: border- padding: 0px 5"&48&/li&&li style="box-sizing: border- padding: 0px 5"&49&/li&&li style="box-sizing: border- padding: 0px 5"&50&/li&&li style="box-sizing: border- padding: 0px 5"&51&/li&&li style="box-sizing: border- padding: 0px 5"&52&/li&&li style="box-sizing: border- padding: 0px 5"&53&/li&&li style="box-sizing: border- padding: 0px 5"&54&/li&&li style="box-sizing: border- padding: 0px 5"&55&/li&&li style="box-sizing: border- padding: 0px 5"&56&/li&&li style="box-sizing: border- padding: 0px 5"&57&/li&&li style="box-sizing: border- padding: 0px 5"&58&/li&&li style="box-sizing: border- padding: 0px 5"&59&/li&&li style="box-sizing: border- padding: 0px 5"&60&/li&&li style="box-sizing: border- padding: 0px 5"&61&/li&&li style="box-sizing: border- padding: 0px 5"&62&/li&&li style="box-sizing: border- padding: 0px 5"&63&/li&&li style="box-sizing: border- padding: 0px 5"&64&/li&&li style="box-sizing: border- padding: 0px 5"&65&/li&&li style="box-sizing: border- padding: 0px 5"&66&/li&&li style="box-sizing: border- padding: 0px 5"&67&/li&&li style="box-sizing: border- padding: 0px 5"&68&/li&&li style="box-sizing: border- padding: 0px 5"&69&/li&&li style="box-sizing: border- padding: 0px 5"&70&/li&&li style="box-sizing: border- padding: 0px 5"&71&/li&&li style="box-sizing: border- padding: 0px 5"&72&/li&&li style="box-sizing: border- padding: 0px 5"&73&/li&&li style="box-sizing: border- padding: 0px 5"&74&/li&&li style="box-sizing: border- padding: 0px 5"&75&/li&&li style="box-sizing: border- padding: 0px 5"&76&/li&&li style="box-sizing: border- padding: 0px 5"&77&/li&&li style="box-sizing: border- padding: 0px 5"&78&/li&&li style="box-sizing: border- padding: 0px 5"&79&/li&&li style="box-sizing: border- padding: 0px 5"&80&/li&&li style="box-sizing: border- padding: 0px 5"&81&/li&&li style="box-sizing: border- padding: 0px 5"&82&/li&&li style="box-sizing: border- padding: 0px 5"&83&/li&&li style="box-sizing: border- padding: 0px 5"&84&/li&&li style="box-sizing: border- padding: 0px 5"&85&/li&&li style="box-sizing: border- padding: 0px 5"&86&/li&&li style="box-sizing: border- padding: 0px 5"&87&/li&&li style="box-sizing: border- padding: 0px 5"&88&/li&&li style="box-sizing: border- padding: 0px 5"&89&/li&&li style="box-sizing: border- padding: 0px 5"&90&/li&&li style="box-sizing: border- padding: 0px 5"&91&/li&&li style="box-sizing: border- padding: 0px 5"&92&/li&&li style="box-sizing: border- padding: 0px 5"&93&/li&&li style="box-sizing: border- padding: 0px 5"&94&/li&&li style="box-sizing: border- padding: 0px 5"&95&/li&&li style="box-sizing: border- padding: 0px 5"&96&/li&&li style="box-sizing: border- padding: 0px 5"&97&/li&&li style="box-sizing: border- padding: 0px 5"&98&/li&&li style="box-sizing: border- padding: 0px 5"&99&/li&&li style="box-sizing: border- padding: 0px 5"&100&/li&&li style="box-sizing: border- padding: 0px 5"&101&/li&&li style="box-sizing: border- padding: 0px 5"&102&/li&&li style="box-sizing: border- padding: 0px 5"&103&/li&&li style="box-sizing: border- padding: 0px 5"&104&/li&&li style="box-sizing: border- padding: 0px 5"&105&/li&&li style="box-sizing: border- padding: 0px 5"&106&/li&&li style="box-sizing: border- padding: 0px 5"&107&/li&&li style="box-sizing: border- padding: 0px 5"&108&/li&&li style="box-sizing: border- padding: 0px 5"&109&/li&&li style="box-sizing: border- padding: 0px 5"&110&/li&&li style="box-sizing: border- padding: 0px 5"&111&/li&&li style="box-sizing: border- padding: 0px 5"&112&/li&&li style="box-sizing: border- padding: 0px 5"&113&/li&&li style="box-sizing: border- padding: 0px 5"&114&/li&&li style="box-sizing: border- padding: 0px 5"&115&/li&&li style="box-sizing: border- padding: 0px 5"&116&/li&&li style="box-sizing: border- padding: 0px 5"&117&/li&&li style="box-sizing: border- padding: 0px 5"&118&/li&&li style="box-sizing: border- padding: 0px 5"&119&/li&&li style="box-sizing: border- padding: 0px 5"&120&/li&&li style="box-sizing: border- padding: 0px 5"&121&/li&&li style="box-sizing: border- padding: 0px 5"&122&/li&&li style="box-sizing: border- padding: 0px 5"&123&/li&&li style="box-sizing: border- padding: 0px 5"&124&/li&&li style="box-sizing: border- padding: 0px 5"&125&/li&&li style="box-sizing: border- padding: 0px 5"&126&/li&&li style="box-sizing: border- padding: 0px 5"&127&/li&&li style="box-sizing: border- padding: 0px 5"&128&/li&&li style="box-sizing: border- padding: 0px 5"&129&/li&&li style="box-sizing: border- padding: 0px 5"&130&/li&&li style="box-sizing: border- padding: 0px 5"&131&/li&&li style="box-sizing: border- padding: 0px 5"&132&/li&&li style="box-sizing: border- padding: 0px 5"&133&/li&&li style="box-sizing: border- padding: 0px 5"&134&/li&&li style="box-sizing: border- padding: 0px 5"&135&/li&&li style="box-sizing: border- padding: 0px 5"&136&/li&&li style="box-sizing: border- padding: 0px 5"&137&/li&&li style="box-sizing: border- padding: 0px 5"&138&/li&&li style="box-sizing: border- padding: 0px 5"&139&/li&&li style="box-sizing: border- padding: 0px 5"&140&/li&&li style="box-sizing: border- padding: 0px 5"&141&/li&&li style="box-sizing: border- padding: 0px 5"&142&/li&&li style="box-sizing: border- padding: 0px 5"&143&/li&&li style="box-sizing: border- padding: 0px 5"&144&/li&&li style="box-sizing: border- padding: 0px 5"&145&/li&&li style="box-sizing: border- padding: 0px 5"&146&/li&&li style="box-sizing: border- padding: 0px 5"&147&/li&&li style="box-sizing: border- padding: 0px 5"&148&/li&&li style="box-sizing: border- padding: 0px 5"&149&/li&&li style="box-sizing: border- padding: 0px 5"&150&/li&&li style="box-sizing: border- padding: 0px 5"&151&/li&&li style="box-sizing: border- padding: 0px 5"&152&/li&&li style="box-sizing: border- padding: 0px 5"&153&/li&&li style="box-sizing: border- padding: 0px 5"&154&/li&&li style="box-sizing: border- padding: 0px 5"&155&/li&&li style="box-sizing: border- padding: 0px 5"&156&/li&&li style="box-sizing: border- padding: 0px 5"&157&/li&&li style="box-sizing: border- padding: 0px 5"&158&/li&&li style="box-sizing: border- padding: 0px 5"&159&/li&&li style="box-sizing: border- padding: 0px 5"&160&/li&&li style="box-sizing: border- padding: 0px 5"&161&/li&&li style="box-sizing: border- padding: 0px 5"&162&/li&&li style="box-sizing: border- padding: 0px 5"&163&/li&&li style="box-sizing: border- padding: 0px 5"&164&/li&&li style="box-sizing: border- padding: 0px 5"&165&/li&&li style="box-sizing: border- padding: 0px 5"&166&/li&&li style="box-sizing: border- padding: 0px 5"&167&/li&&li style="box-sizing: border- padding: 0px 5"&168&/li&&li style="box-sizing: border- padding: 0px 5"&169&/li&&li style="box-sizing: border- padding: 0px 5"&170&/li&&li style="box-sizing: border- padding: 0px 5"&171&/li&&li style="box-sizing: border- padding: 0px 5"&172&/li&&li style="box-sizing: border- padding: 0px 5"&173&/li&&li style="box-sizing: border- padding: 0px 5"&174&/li&&li style="box-sizing: border- padding: 0px 5"&175&/li&&li style="box-sizing: border- padding: 0px 5"&176&/li&&li style="box-sizing: border- padding: 0px 5"&177&/li&&li style="box-sizing: border- padding: 0px 5"&178&/li&&li style="box-sizing: border- padding: 0px 5"&179&/li&&li style="box-sizing: border- padding: 0px 5"&180&/li&&li style="box-sizing: border- padding: 0px 5"&181&/li&&li style="box-sizing: border- padding: 0px 5"&182&/li&&li style="box-sizing: border- padding: 0px 5"&183&/li&&li style="box-sizing: border- padding: 0px 5"&184&/li&&li style="box-sizing: border- padding: 0px 5"&185&/li&&li style="box-sizing: border- padding: 0px 5"&186&/li&&li style="box-sizing: border- padding: 0px 5"&187&/li&&li style="box-sizing: border- padding: 0px 5"&188&/li&&li style="box-sizing: border- padding: 0px 5"&189&/li&&li style="box-sizing: border- padding: 0px 5"&190&/li&&li style="box-sizing: border- padding: 0px 5"&191&/li&&li style="box-sizing: border- padding: 0px 5"&192&/li&&li style="box-sizing: border- padding: 0px 5"&193&/li&&li style="box-sizing: border- padding: 0px 5"&194&/li&&li style="box-sizing: border- padding: 0px 5"&195&/li&&li style="box-sizing: border- padding: 0px 5"&196&/li&&li style="box-sizing: border- padding: 0px 5"&197&/li&&li style="box-sizing: border- padding: 0px 5"&198&/li&&li style="box-sizing: border- padding: 0px 5"&199&/li&&li style="box-sizing: border- padding: 0px 5"&200&/li&&li style="box-sizing: border- padding: 0px 5"&201&/li&&li style="box-sizing: border- padding: 0px 5"&202&/li&&li style="box-sizing: border- padding: 0px 5"&203&/li&&li style="box-sizing: border- padding: 0px 5"&204&/li&&li style="box-sizing: border- padding: 0px 5"&205&/li&&li style="box-sizing: border- padding: 0px 5"&206&/li&&li style="box-sizing: border- padding: 0px 5"&207&/li&&li style="box-sizing: border- padding: 0px 5"&208&/li&&li style="box-sizing: border- padding: 0px 5"&209&/li&&li style="box-sizing: border- padding: 0px 5"&210&/li&&li style="box-sizing: border- padding: 0px 5"&211&/li&&li style="box-sizing: border- padding: 0px 5"&212&/li&&li style="box-sizing: border- padding: 0px 5"&213&/li&&li style="box-sizing: border- padding: 0px 5"&214&/li&&li style="box-sizing: border- padding: 0px 5"&215&/li&&li style="box-sizing: border- padding: 0px 5"&216&/li&&li style="box-sizing: border- padding: 0px 5"&217&/li&&li style="box-sizing: border- padding: 0px 5"&218&/li&&li style="box-sizing: border- padding: 0px 5"&219&/li&&li style="box-sizing: border- padding: 0px 5"&220&/li&&li style="box-sizing: border- padding: 0px 5"&221&/li&&li style="box-sizing: border- padding: 0px 5"&222&/li&&li style="box-sizing: border- padding: 0px 5"&223&/li&&li style="box-sizing: border- padding: 0px 5"&224&/li&&li style="box-sizing: border- padding: 0px 5"&225&/li&&li style="box-sizing: border- padding: 0px 5"&226&/li&&li style="box-sizing: border- padding: 0px 5"&227&/li&&li style="box-sizing: border- padding: 0px 5"&228&/li&&li style="box-sizing: border- padding: 0px 5"&229&/li&&li style="box-sizing: border- padding: 0px 5"&230&/li&&li style="box-sizing: border- padding: 0px 5"&231&/li&&li style="box-sizing: border- padding: 0px 5"&232&/li&&li style="box-sizing: border- padding: 0px 5"&233&/li&&li style="box-sizing: border- padding: 0px 5"&234&/li&&li style="box-sizing: border- padding: 0px 5"&235&/li&&li style="box-sizing: border- padding: 0px 5"&236&/li&&li style="box-sizing: border- padding: 0px 5"&237&/li&&li style="box-sizing: border- padding: 0px 5"&238&/li&&li style="box-sizing: border- padding: 0px 5"&239&/li&&li style="box-sizing: border- padding: 0px 5"&240&/li&&li style="box-sizing: border- padding: 0px 5"&241&/li&&li style="box-sizing: border- padding: 0px 5"&242&/li&&li style="box-sizing: border- padding: 0px 5"&243&/li&&li style="box-sizing: border- padding: 0px 5"&244&/li&&li style="box-sizing: border- padding: 0px 5"&245&/li&&li style="box-sizing: border- padding: 0px 5"&246&/li&&li style="box-sizing: border- padding: 0px 5"&247&/li&&li style="box-sizing: border- padding: 0px 5"&248&/li&&li style="box-sizing: border- padding: 0px 5"&249&/li&&li style="box-sizing: border- padding: 0px 5"&250&/li&&li style="box-sizing: border- padding: 0px 5"&251&/li&&li style="box-sizing: border- padding: 0px 5"&252&/li&&li style="box-sizing: border- padding: 0px 5"&253&/li&&li style="box-sizing: border- padding: 0px 5"&254&/li&&li style="box-sizing: border- padding: 0px 5"&255&/li&&li style="box-sizing: border- padding: 0px 5"&256&/li&&li style="box-sizing: border- padding: 0px 5"&257&/li&&li style="box-sizing: border- padding: 0px 5"&258&/li&&li style="box-sizing: border- padding: 0px 5"&259&/li&&li style="box-sizing: border- padding: 0px 5"&260&/li&&li style="box-sizing: border- padding: 0px 5"&261&/li&&li style="box-sizing: border- padding: 0px 5"&262&/li&&li style="box-sizing: border- padding: 0px 5"&263&/li&&li style="box-sizing: border- padding: 0px 5"&264&/li&&li style="box-sizing: border- padding: 0px 5"&265&/li&&li style="box-sizing: border- padding: 0px 5"&266&/li&&li style="box-sizing: border- padding: 0px 5"&267&/li&&li style="box-sizing: border- padding: 0px 5"&268&/li&&li style="box-sizing: border- padding: 0px 5"&269&/li&&li style="box-sizing: border- padding: 0px 5"&270&/li&&li style="box-sizing: border- padding: 0px 5"&271&/li&&li style="box-sizing: border- padding: 0px 5"&272&/li&&li style="box-sizing: border- padding: 0px 5"&273&/li&&li style="box-sizing: border- padding: 0px 5"&274&/li&&li style="box-sizing: border- padding: 0px 5"&275&/li&&li style="box-sizing: border- padding: 0px 5"&276&/li&&li style="box-sizing: border- padding: 0px 5"&277&/li&&li style="box-sizing: border- padding: 0px 5"&278&/li&&li style="box-sizing: border- padding: 0px 5"&279&/li&&li style="box-sizing: border- padding: 0px 5"&280&/li&&li style="box-sizing: border- padding: 0px 5"&281&/li&&li style="box-sizing: border- padding: 0px 5"&282&/li&&li style="box-sizing: border- padding: 0px 5"&283&/li&&li style="box-sizing: border- padding: 0px 5"&284&/li&&li style="box-sizing: border- padding: 0px 5"&285&/li&&li style="box-sizing: border- padding: 0px 5"&286&/li&&li style="box-sizing: border- padding: 0px 5"&287&/li&&li style="box-sizing: border- padding: 0px 5"&288&/li&&li style="box-sizing: border- padding: 0px 5"&289&/li&&li style="box-sizing: border- padding: 0px 5"&290&/li&&li style="box-sizing: border- padding: 0px 5"&291&/li&&li style="box-sizing: border- padding: 0px 5"&292&/li&&li style="box-sizing: border- padding: 0px 5"&293&/li&&li style="box-sizing: border- padding: 0px 5"&294&/li&&li style="box-sizing: border- padding: 0px 5"&295&/li&&li style="box-sizing: border- padding: 0px 5"&296&/li&&li style="box-sizing: border- padding: 0px 5"&297&/li&&li style="box-sizing: border- padding: 0px 5"&298&/li&&li style="box-sizing: border- padding: 0px 5"&299&/li&&li style="box-sizing: border- padding: 0px 5"&300&/li&&li style="box-sizing: border- padding: 0px 5"&301&/li&&li style="box-sizing: border- padding: 0px 5"&302&/li&&li style="box-sizing: border- padding: 0px 5"&303&/li&&li style="box-sizing: border- padding: 0px 5"&304&/li&&li style="box-sizing: border- padding: 0px 5"&305&/li&&li style="box-sizing: border- padding: 0px 5"&306&/li&&li style="box-sizing: border- padding: 0px 5"&307&/li&&li style="box-sizing: border- padding: 0px 5"&308&/li&&li style="box-sizing: border- padding: 0px 5"&309&/li&&li style="box-sizing: border- padding: 0px 5"&310&/li&&li style="box-sizing: border- padding: 0px 5"&311&/li&&li style="box-sizing: border- padding: 0px 5"&312&/li&&li style="box-sizing: border- padding: 0px 5"&313&/li&&li style="box-sizing: border- padding: 0px 5"&314&/li&&li style="box-sizing: border- padding: 0px 5"&315&/li&&li style="box-sizing: border- padding: 0px 5"&316&/li&&li style="box-sizing: border- padding: 0px 5"&317&/li&&li style="box-sizing: border- padding: 0px 5"&318&/li&&li style="box-sizing: border- padding: 0px 5"&319&/li&&li style="box-sizing: border- padding: 0px 5"&320&/li&&li style="box-sizing: border- padding: 0px 5"&321&/li&&li style="box-sizing: border- padding: 0px 5"&322&/li&&li style="box-sizing: border- padding: 0px 5"&323&/li&&li style="box-sizing: border- padding: 0px 5"&324&/li&&li style="box-sizing: border- padding: 0px 5"&325&/li&&li style="box-sizing: border- padding: 0px 5"&326&/li&&li style="box-sizing: border- padding: 0px 5"&327&/li&&li style="box-sizing: border- padding: 0px 5"&328&/li&&li style="box-sizing: border- padding: 0px 5"&329&/li&&li style="box-sizing: border- padding: 0px 5"&330&/li&&li style="box-sizing: border- padding: 0px 5"&331&/li&&li style="box-sizing: border- padding: 0px 5"&332&/li&&li style="box-sizing: border- padding: 0px 5"&333&/li&&li style="box-sizing: border- padding: 0px 5"&334&/li&&li style="box-sizing: border- padding: 0px 5"&335&/li&&li style="box-sizing: border- padding: 0px 5"&336&/li&&li style="box-sizing: border- padding: 0px 5"&337&/li&&li style="box-sizing: border- padding: 0px 5"&338&/li&&li style="box-sizing: border- padding: 0px 5"&339&/li&&li style="box-sizing: border- padding: 0px 5"&340&/li&&li style="box-sizing: border- padding: 0px 5"&341&/li&&li style="box-sizing: border- padding: 0px 5"&342&/li&&li style="box-sizing: border- padding: 0px 5"&343&/li&&li style="box-sizing: border- padding: 0px 5"&344&/li&&li style="box-sizing: border- padding: 0px 5"&345&/li&&li style="box-sizing: border- padding: 0px 5"&346&/li&&li style="box-sizing: border- padding: 0px 5"&347&/li&&li style="box-sizing: border- padding: 0px 5"&348&/li&&li style="box-sizing: border- padding: 0px 5"&349&/li&&li style="box-sizing: border- padding: 0px 5"&350&/li&&li style="box-sizing: border- padding: 0px 5"&351&/li&&li style="box-sizing: border- padding: 0px 5"&352&/li&&li style="box-sizing: border- padding: 0px 5"&353&/li&&li style="box-sizing: border- padding: 0px 5"&354&/li&&li style="box-sizing: border- padding: 0px 5"&355&/li&&li style="box-sizing: border- padding: 0px 5"&356&/li&&li style="box-sizing: border- padding: 0px 5"&357&/li&&li style="box-sizing: border- padding: 0px 5"&358&/li&&li style="box-sizing: border- padding: 0px 5"&359&/li&&li style="box-sizing: border- padding: 0px 5"&360&/li&&/ul&
style样式:
@drawable/gray_cornor_bg
drawable文件:
anim_mic.xml
&code class="hljs xml has-numbering" style="display: padding: 0 color: box-sizing: border- font-family: "Source Code Pro",font-}

我要回帖

更多关于 手机无线按钮打不开 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信