Android之手机震动效果实现

手机开发中,有时候我们需要使用震动效果提示用户当前的软件状态,下面以一个简单的例子实现这个功能。


1.新建Android应用程序

Android之手机震动效果实现_第1张图片


2.在AndroidManifest.xml中申明需要使用的震动权限

    

3.界面上添加按钮



    
    
    

4.源码中处理按钮效果

package com.sl.vibratordemo;

import android.os.Bundle;
import android.os.SystemClock;
import android.os.Vibrator;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
import android.content.Context;

public class MainActivity extends Activity
{
	private Button btn1 = null;
	private Button btn2 = null;
	private Button btn3 = null;
	
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		btn1 = (Button)findViewById(R.id.btn1);
		btn2 = (Button)findViewById(R.id.btn2);
		btn3 = (Button)findViewById(R.id.btn3);
		btn1.setOnClickListener(listener);
		btn2.setOnClickListener(listener);
		btn3.setOnClickListener(listener);
	}
	
	OnClickListener listener = new View.OnClickListener()
	{
		@Override
		public void onClick(View v)
		{
			Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
			switch (v.getId())
			{
			case R.id.btn1:
				vibrator.vibrate(1000);//震动1秒
				break;
			case R.id.btn2:
				long[] pattern1 = {1000, 2000, 1000, 3000}; //等待1秒,震动2秒,等待1秒,震动3秒   
				vibrator.vibrate(pattern1, -1);
				break;
			case R.id.btn3:
				long[] pattern2 = {1000, 500, 1000, 1000};
				vibrator.vibrate(pattern2, 2);//-1表示不重复, 如果不是-1, 比如改成1, 表示从前面这个long数组的下标为1的元素开始重复.
				SystemClock.sleep(10000);//震动10s以后停止
				vibrator.cancel();
				break;
			default:
				break;
			}
		}
	};
}

5.运行效果

Android之手机震动效果实现_第2张图片

源码下载

你可能感兴趣的:(Android,手机震动,实现,Android开发)