android 语音发送功能,Android仿微信、录制音频并发送功能

MyRecorder(仿微信,录制音频并发送功能)

android 语音发送功能,Android仿微信、录制音频并发送功能_第1张图片

①布局实现(activity_main.xml)布局采用线性布局,上面使用的一个ListView,下面使用的是一个自定义的Button(会在下面进行介绍)

xmlns:android="http://schemas.android.com/apk/res/android"

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

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

tools:context="com.yitong.myrecorder.MainActivity">

android:id="@+id/main_listview"

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1"

android:background="#ebebeb"

android:dividerHeight="10dp"

android:divider="@null"

/>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="#fff">

android:id="@+id/main_btn"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:gravity="center"

android:layout_marginTop="6dp"

android:layout_marginBottom="6dp"

android:layout_marginLeft="60dp"

android:layout_marginRight="60dp"

android:minHeight="0dp"

android:padding="6dp"

android:text="@string/str_recoder_normal"

android:textSize="20sp"

android:textColor="#727272"

android:background="@drawable/btn_recorder_normal"

/>

android:layout_width="match_parent"

android:layout_height="1dp"

android:background="#ccc"/>

相关使用的string值(需要添加到value/string中):

按住说话

松开结束

松开手指,取消发送

手指上滑,取消发送

手指上滑,取消发送

录音时间过短

②我们分析一下自定Button的几种状态:

1.正常状态(在初次显示,即没有点击的时候显示的状态,显示的文本为“按住说话”)

2.录音状态(当手指按在Button上时,即为录音状态,显示的文本为“松开结束”)

3.取消状态(当手指上滑,此时若松开手指,便取消发送,即为取消状态,显示的文本为“松开手指,取消发送”)

③当录音状态时,在View上有一个Dialog的提示,首先我们先自定义这个Dialog的布局:

android 语音发送功能,Android仿微信、录制音频并发送功能_第2张图片

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/dialog_bg"

android:orientation="vertical"

android:padding="20dp">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:orientation="horizontal">

android:id="@+id/main_recorder_dialog_icon"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@mipmap/recorder"

android:visibility="visible"/>

android:id="@+id/main_recorder_dialog_voice"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@mipmap/v1"

android:visibility="visible"/>

android:id="@+id/main_recorder_dialog_label"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:layout_marginTop="5dp"

android:text="@string/str_dialog_want_cancel"

android:textColor="#fff"

android:textSize="20sp"/>

其中用到的@drawable/dialog_bg即为自定的shape

android:shape="rectangle">

android:width="1dp"

android:color="#9b9b9b"/>

④定义DialogManager,便于对这个自定义布局的Dialog进行操作

public class DialogManager {

private static final String TAG = "DialogManager";

private Dialog mDialog;

private ImageView mIcon;

private ImageView mVoice;

private TextView mLabel;

private Context mContext;

public DialogManager(Context mContext) {

this.mContext = mContext;

}

/**

* 显示对话框

*/

public void showRecordeingDialo

你可能感兴趣的:(android,语音发送功能)