zoukankan      html  css  js  c++  java
  • Android该系统提供的服务--Vibrator(振子)

    Android该系统提供的服务--Vibrator(振子)

                                                              ——转载请注明出处:coder-pig



    Vibrator简单介绍与相关方法:






    简单demo——设置频率不同的振动器


    对于Vibrator用的最广泛的莫过于所谓的手机按摩器类的app,在app市场一搜,一堆,笔者随便下了几个下来瞅瞅

    ,都是大同小异的,这点小玩意居然有8W多的下载量...好吧,好像也不算多,只是普遍功能都是切换振动频率来完毕

    所谓的按摩效果,是否真的有效就不得而知了,那么接下来

    我们就来实现一个简单的按摩器吧!

    核心事实上就是vibrate()中的数组的參数,依据自己需求写一个数组就能够了!

    由于模拟器不会振动的,所以须要在手机上执行才会有效果哦!


    效果图:


    代码也非常easy,布局的话就四个简单的button而已

    activity_main.xml:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/LinearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context="com.jay.example.vibratordemo.MainActivity" >
    
        <Button
            android:id="@+id/btnshort"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="短振动" />
    
        <Button
            android:id="@+id/btnlong"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="长振动" />
        
        <Button
            android:id="@+id/btnrhythm"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="节奏振动" />  
            
        <Button
            android:id="@+id/btncancle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="取消振动" />       
    </LinearLayout>
    

    接着就是MainActivity的编写了,这里和上一节的写法是一样的,让Activity类实现OnClickListener接口

    重写onClick方法,依据不同的view的id就能够推断是哪个button点击了,这样的写法的优点是对于组件较多的

    情况这样写能够简化代码!

    MainActivity.java:

    package com.jay.example.vibratordemo;
    
    import android.app.Activity;
    import android.app.Service;
    import android.os.Bundle;
    import android.os.Vibrator;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;
    
    
    public class MainActivity extends Activity implements OnClickListener{
    
    	private Button btnshort;
    	private Button btnlong;
    	private Button btnrhythm;
    	private Button btncancel;
    	private Vibrator myVibrator;
    	
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		btnshort = (Button) findViewById(R.id.btnshort);
    		btnlong = (Button) findViewById(R.id.btnlong);
    		btnrhythm = (Button) findViewById(R.id.btnrhythm);
    		btncancel = (Button) findViewById(R.id.btncancle);
    		
    		btnshort.setOnClickListener(this);
    		btnlong.setOnClickListener(this);
    		btnrhythm.setOnClickListener(this);
    		btncancel.setOnClickListener(this);
    		
    		
    		//获得系统的Vibrator实例:
    		myVibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);
    		
    	}
    
    	@Override
    	public void onClick(View v) {
    		switch (v.getId()) {
    		case R.id.btnshort:
    			myVibrator.cancel();
    			myVibrator.vibrate(new long[]{100,200,100,200}, 0);
    			Toast.makeText(getApplicationContext(), "短振动", Toast.LENGTH_SHORT).show();
    			break;
    		case R.id.btnlong:
    			myVibrator.cancel();
    			myVibrator.vibrate(new long[]{100,100,100,1000}, 0);
    			Toast.makeText(getApplicationContext(), "长振动", Toast.LENGTH_SHORT).show();
    			break;
    		case R.id.btnrhythm:
    			myVibrator.cancel();
    			myVibrator.vibrate(new long[]{500,100,500,100,500,100}, 0);
    			Toast.makeText(getApplicationContext(), "节奏振动", Toast.LENGTH_SHORT).show();
    			break;
    		case R.id.btncancle:
    			myVibrator.cancel();
    			Toast.makeText(getApplicationContext(), "取消振动", Toast.LENGTH_SHORT).show();
    		}
    		
    	}
    }
    

    最后别忘了在AndroidManifest.xml文件里加入权限哦!

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



    好了,基本使用方法事实上也是非常easy的,这里就不多说了,另外上面也说了,虚拟机是没有震动效果的,所以

    须要把应用公布到手机上才干检測效果了!參考代码下载:vibratorDemo.rar

    为了方便各位,直接把apk导出来吧,直接下载安装到手机就能够測试效果了,当然仅仅是个小demo,不会

    推送广告,乱发短信什么的=-=!安装时能够查看所须要的权限!apk下载:vibratorDemo.apk










  • 相关阅读:
    关于在MDK中使用 printf 函数
    Stm32 SWD 下载 调试配置
    STM32使用以下规则对过滤器编号:
    STM32的can现场总线实验心得
    0R电阻作用
    Android activity 亮度调整
    电源信息监控
    android 圆环进度view
    com.google.zxing:core 生成二维码的简单使用
    自定义控件 监控宿主activity的生命周期
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4601710.html
Copyright © 2011-2022 走看看