android 语音交互动画,Android实现客户端语音动弹界面实例代码

5429d93d15a0f8ea38b7ac19537fae60.png

首先,整体界面分三部分,最上层自定义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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Android平台自带的SpeechRecognizer API进行语音识别,并使用动画来增加交互体验。以下是一些示例代码,可以在语音识别期间显示动画: 1. 在XML布局文件中添加一个ImageView,用于显示动画: ``` <ImageView android:id="@+id/imageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/your_animation_drawable" /> ``` 2. 在Java代码中初始化SpeechRecognizer,并为其设置RecognitionListener以便处理语音识别事件。在onBeginningOfSpeech回调方法中,开始动画。在onResults回调方法中,停止动画。 ``` // 初始化SpeechRecognizer SpeechRecognizer sr = SpeechRecognizer.createSpeechRecognizer(this); // 设置RecognitionListener sr.setRecognitionListener(new RecognitionListener() { @Override public void onBeginningOfSpeech() { // 开始动画 ImageView imageView = findViewById(R.id.imageView); ((AnimationDrawable) imageView.getDrawable()).start(); } @Override public void onResults(Bundle results) { // 停止动画 ImageView imageView = findViewById(R.id.imageView); ((AnimationDrawable) imageView.getDrawable()).stop(); } // 其他回调方法 // ... }); // 开始语音识别 sr.startListening(new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH)); ``` 3. 如果您想要更多控制动画,您可以使用Animation类和Animator类来实现自定义动画。例如,您可以在onBeginningOfSpeech回调方法中启动一个ObjectAnimator来旋转ImageView: ``` // 创建ObjectAnimator ObjectAnimator rotation = ObjectAnimator.ofFloat(imageView, "rotation", 0f, 360f); // 设置旋转速度和循环次数 rotation.setDuration(1000); rotation.setRepeatCount(ObjectAnimator.INFINITE); // 启动动画 rotation.start(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值