android开发中按键震动按键声音实现原理机制

如果我们的android应用程序在按键的时候想调用系统的震动服务,我们得先再AndroidMainfest.xml里面加上相应的权限

<uses-permission android:name="android.permission.VIBRATE" />

然后就是

Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);  
 //  vibrator.vibrate(3000);  
// 设置Vibrate的震动周期  
vibrator.vibrate(new long[]{1000,2000,3000,4000}, 0);

这里再网上找了个写好的震动的方法类

package com.lxb.switchdemo;  
  
import android.app.Activity;  
import android.app.Service;  
import android.os.Vibrator;  
import android.widget.LinearLayout;  
  
/** 
 * 手机震动工具类 
 *  
 * @author Administrator 
 *  
 */  
public class VibratorUtil {  
  
    /** 
     * final Activity activity :调用该方法的Activity实例 long milliseconds :震动的时长,单位是毫秒 
     * long[] pattern :自定义震动模式 。数组中数字的含义依次是[静止时长,震动时长,静止时长,震动时长。。。]时长的单位是毫秒 
     * boolean isRepeat : 是否反复震动,如果是true,反复震动,如果是false,只震动一次 
     */  
  
    public static void Vibrate(final Activity activity, long milliseconds) {  
        Vibrator vib = (Vibrator) activity  
                .getSystemService(Service.VIBRATOR_SERVICE);  
        vib.vibrate(milliseconds);  
    }  
  
    public static void Vibrate(final Activity activity, long[] pattern,  
            boolean isRepeat) {  
        Vibrator vib = (Vibrator) activity  
                .getSystemService(Service.VIBRATOR_SERVICE);  
        vib.vibrate(pattern, isRepeat ? 1 : -1);  
    }  
}

当然在你的activity里面调用的时候只需要在onclick下加上

VibratorUtil.Vibrate(Switch_demoActivity.this, 100);

即可实现简单的震动机制

下来总结下按键声音的机制实现,

public class MainActivity extends Activity {   
    private Button mButton01;   
    private SoundPool sp;//声明一个SoundPool   
    private int music;//定义一个整型用load();来设置suondID    
  
    @Override   
    public void onCreate(Bundle savedInstanceState) {   
  
        super.onCreate(savedInstanceState);   
        setContentView(R.layout.activity_main);   
        mButton01=(Button)findViewById(R.id.mButton01);   
        sp= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);//第一个参数为同时播放数据流的最大个数,第二数据流类型,第三为声音质量   
        music = sp.load(this, R.raw.start, 1); //把你的声音素材放到res/raw里,第2个参数即为资源文件,第3个为音乐的优先级   
  
        mButton01.setOnClickListener(new OnClickListener(){   
            @Override   
           public void onClick(View v) {   
             sp.play(music, 1, 1, 0, 0, 1);   
       }  
    }  
  }  
}

raw是在res下面新建文件夹,里面都是不需要编译的可以直接用的资源文件,当然为了避免在有的机器里面不能识别按键声音的问日,最好把需要加载的音频格式转换成ogg格式。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索参数
service
spring原理和实现机制、线程锁机制的实现原理、java反射机制实现原理、按键精灵实现原理、按键精灵安卓实现原理,以便于您获取更多的相关知识。

时间: 2024-07-30 12:36:51

android开发中按键震动按键声音实现原理机制的相关文章

button形状-在android开发中,怎么设置我的ImageButton控件的形状

问题描述 在android开发中,怎么设置我的ImageButton控件的形状 我按照百度上教的,发现没什么效果,这是我控件的代码: android:id="@+id/button" android:layout_width="102dp" android:layout_height="133dp" android:background="@drawable/a" /> <ImageButton android:i

Android源码浅析(四)——我在Android开发中常用到的adb命令,Linux命令,源码编译命令

Android源码浅析(四)--我在Android开发中常用到的adb命令,Linux命令,源码编译命令 我自己平时开发的时候积累的一些命令,希望对你有所帮助 adb是什么?: adb的全称为Android Debug Bridge,就是起到调试桥的作用.通过adb我们可以在IDE中调试Android程序,说白了就是debug工具.adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行And

请问大侠,android开发中,摇一摇为什么会执行两次动作?

问题描述 请问大侠,android开发中,摇一摇为什么会执行两次动作? 请问各位大侠,为什么摇一摇的时候,如果摇的比较使劲,估计传感器变化超过两次,就会执行两次或多次动作呀~比如出现好几个代码中的activity package com.cnlaunch.ui; import android.app.Activity; import android.app.Service; import android.content.Intent; import android.hardware.Sensor

Android开发中LayoutInflater用法详解_Android

本文实例讲述了Android开发中LayoutInflater用法.分享给大家供大家参考,具体如下: 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById().不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化:而findViewById()是找xml布局文件下的具体widget控件(如Button.TextView等). 具体作用: 1.对于一个没有被载入或者想要动态载入的界面,都需要使用Layout

Android开发中LayoutInflater用法详解

本文实例讲述了Android开发中LayoutInflater用法.分享给大家供大家参考,具体如下: 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById().不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化:而findViewById()是找xml布局文件下的具体widget控件(如Button.TextView等). 具体作用: 1.对于一个没有被载入或者想要动态载入的界面,都需要使用Layout

Android开发中播放声音的两种方法分析

本文实例讲述了Android开发中播放声音的两种方法.分享给大家供大家参考,具体如下: 在Android中,音频.视频等多媒体元素的加入,使得应用程序的用户体验更好.可以说,现在的手机,已经远远不只作为通信工具,更成为娱乐.办公的必备产品. Android提供了简单的音频API.一般大家使用的是MediaPlayer播放音频,这也是最常见的一种播放声音的工具.这种工具在互联网上有大量的实例,因此在此只做简单的介绍. 对播放行为的控制是三个大家非常熟悉的方法:start().stop()和paus

解析json数据-android 开发中 json解析问题出错啊

问题描述 android 开发中 json解析问题出错啊 {"msg":1,"msgbox":"返回歌手分类!","data":"[ { "rownum":"11","id":"1047","userName":"敖日格勒","picurl":"mobile1_1047

在android开发中如何搜索下载国外精美的图标资源

问题描述 在android开发中如何搜索下载国外精美的图标资源 在安卓开发中,图标是我们经常和必须用到的东西,但是自己设计图标又不在行,只能在网上搜索,但是国内很多网站的图标资源是收费的,如何找到国外的图标资源站,谢谢! 解决方案 https://www.iconfinder.com/

Android开发中比较耗时的一些操作小结

  这篇文章主要介绍了Android开发中比较耗时的一些操作小结,本文根据实际开发经验总结了6条比较耗时的编程操作,请大家注意下,需要的朋友可以参考下 在Android软件开发过程中,经常遇到耗时操作.为了使手机app运行流畅,耗时操作需要在新的一个线程中完成.那么,Android手机应用开发中,耗时操作有哪些呢?下面来总结一下. 1.下载文件操作 2.网络连接操作(尤其是网络不好的时候) 3.音频格式转换操作 4.文件操作 5.比较大的数据的初始化操作 6.sleep函数等 注: 具体的功能还

Android开发中遇到端口号占用问题解决方法

  这篇文章主要介绍了Android开发中遇到端口号占用问题解决方法,本文给出了一个简洁实用的方法来解决这个烦人的问题,需要的朋友可以参考下 Android开发的时候经常遇到端口号被占用的问题,经常使程序无法运行,很烦人.我总结了一个很好的方法,非常实用.方法如下: (1):方法1: 第一步:1:netstat -ano | findstr "5037" 第二步:2:TASKLIST | findstr "9292" (2):方法2: 首先进入目录下:E: 代码如下