关闭

Android自定义点击带声音的控件TextView/Button/ListView

标签: 自定义textviewbutton控件发音
1292人阅读 评论(2) 收藏 举报
分类:

实现思路:
android控件在setonclick方法时,在点击时,就会触发performClick()方法,我们可以在自定义控件实现此方法,调用一个发声音的方法,即可以实现点击控件发出声音。

自定义控件:
这里只写一个Imageview自定义,其他的所有控件几乎都是一样,实现performClick()即可。

public class MyImageView extends ImageView {

    public MyImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public MyImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyImageView(Context context) {
        super(context);
    }

    @Override
    public boolean performClick() {
        //调用发声方法
        BaseApplication.playClickVoice(getContext());
        return super.performClick();
    }
}

我在Application里面自定义了一个发声方法,在网上百度了一个音频文件,把音频文件放在raw文件下

    public static MediaPlayer mp;  //音频播放
    public static void playClickVoice(Context context){
        if (true) {
            try {
                if (mp == null) {
                    mp = new MediaPlayer(); 
                }   
                mp.reset();
                AssetFileDescriptor afd = context.getResources().openRawResourceFd(R.raw.button_click_voice);
                if (afd == null)  return; 
                mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
                afd.close();

                mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
                mp.prepare();
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            mp.start();
        } 
    }
0
0
查看评论

Android 音频播放之SoundPool的使用和封装(自定义声音资源)

例如,现在在一个五子棋游戏中,我们需要在棋子落盘的时候播放一段声音。我们可以利用SoundPool,因为它时间很短,而且需要反复播放,并且我们不希望声音占用太大资源。一般大家使用的是MediaPlayer来播放音频,它的创建和销毁都是非常消耗资源的,如果我们的需求是播放一些短促而且频繁播放的音频的话...
  • huangxiaoguo1
  • huangxiaoguo1
  • 2016-12-21 12:28
  • 1478

android应用中为按键添加声音

为程序的按钮添加按键声音能更好的亲和用户,产生更好的使用体验,下面就是为按键添加声音的方法: [java] view plain copy public class MainActivity extends Act...
  • rong_wz
  • rong_wz
  • 2016-06-07 11:19
  • 3379

Android如何取消view的点击音效

android的view都带有点击音效, 要取消的话, 需在在xml里面加入android:soundEffectsEnabled=“false”属性。
  • xy18990
  • xy18990
  • 2016-12-05 10:49
  • 939

android RadioButton 点击时候出现点击声音的效果

final RadioButton radioButtonTypeOne = (RadioButton) dialog.findViewById(R.id.select_type_one);   final RadioButton radioButtonReadPoint = ...
  • cw2004100021124
  • cw2004100021124
  • 2013-12-19 11:27
  • 1807

Android学习:为按键添加声音

为程序的按钮添加按键声音能更好的亲和用户,产生更好的使用体验,下面就是为按键添加声音的方法: public class MainActivity extends Activity { private Button mButton01; private SoundPool s...
  • lissdy
  • lissdy
  • 2012-12-23 11:15
  • 13118

android自定义控件:根据声音波动的声波控件模仿Siri

转载于。。。。。。。。http://blog.csdn.net/carlos1992/article/details/50817997
  • koubi1234
  • koubi1234
  • 2017-03-17 15:51
  • 1554

android自定义控件:根据声音波动的声波控件

直接上图,有两个效果,如下: 效果一: 效果二: 大家可能觉得效果二难看,但其实 ,在项目中的运行以后,是这样的: 因为这个控件的许多东西,都是可以自定义配置的,所以背景色,线的颜色等,下面详细介绍,最后会放出源码:
  • carlos1992
  • carlos1992
  • 2016-03-07 11:40
  • 8280

Android开发RecyclerView刷新后item里面控件动画

项目中有个列表的item中有点赞动画,之前我用的列表框架是继承listview的,动画用起来一点问题都没有,现在列表框架是继承用的recyclerView,动画就卡主,百思不得其姐。        解决方法:      1.动画要...
  • u010074743
  • u010074743
  • 2017-03-26 22:22
  • 1203

Android仿微博实现列表滑动播放/暂停视频

本文仿照新浪微博/QQ空间实现了滑动自动播放视频的功能。 本文来自个人博客:http://www.zhangliwei.date 如有疑问欢迎讨论,感谢您的关注。 先上效果图 关键代码1.监听滚动事件首先要给listview添加setOnScrollListener监听,注意这...
  • a787486489
  • a787486489
  • 2016-09-06 11:12
  • 4312

安卓点击事件音效(增加+控制)

项目中遇到的问题,跟大家分享 开发环境:Android Studio 项目中用到的类(关键):SoundPool 项目github地址:https://github.com/zw21544182/BtMusicDemo 项目中所用到的关键知识: 1.基类抽取—(abstract)BaseA...
  • zw21544182
  • zw21544182
  • 2017-09-08 17:39
  • 434
    个人资料
    • 访问:65740次
    • 积分:1137
    • 等级:
    • 排名:千里之外
    • 原创:49篇
    • 转载:2篇
    • 译文:1篇
    • 评论:14条
    最新评论