Android應用實現點擊按鈕震動

本項目為大傢分享瞭Android應用實現點擊按鈕震動的具體代碼,供大傢參考,具體內容如下

項目中需要實現點擊應用中的按鈕,有震動效果。震動效果可以在設置中進行關閉。

具體實現如下。

編寫震動幫助類:VibrateHelp.java

import android.content.Context;
import android.os.Vibrator;
 
/**
 * 震動幫助類
 * androidManifest.xml中加入 以下權限
 * <uses-permission android:name="android.permission.VIBRATE" />
 */
public class VibrateHelp {
 private static Vibrator vibrator;
 
 /**
  * 簡單震動
  * @param context     調用震動的Context
  * @param millisecond 震動的時間,毫秒
  */
 @SuppressWarnings("static-access")
 public static void vSimple(Context context, int millisecond) {
  vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
  vibrator.vibrate(millisecond);
 }
 
 /**
  * 復雜的震動
  * @param context 調用震動的Context
  * @param pattern 震動形式
  * @param repeate 震動的次數,-1不重復,非-1為從pattern的指定下標開始重復
  */
 @SuppressWarnings("static-access")
 public static void vComplicated(Context context, long[] pattern, int repeate) {
  vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
  vibrator.vibrate(pattern, repeate);
 }
 
 /**
  * 停止震動
  */
 public static void stop() {
  if (vibrator != null) {
   vibrator.cancel();
  }
 }
}

下面自定義實現按鈕單擊震動類:ViewClickVibrate.java

import android.view.View;

import android.view.View.OnClickListener;
 
public class ViewClickVibrate implements OnClickListener{
 /** 按鈕震動時間 */
 private final int VIBRATE_TIME = 60;
 
 
 @Override
 public void onClick(View v) {
  // TODO 根據設置中的標記判斷是否執行震動
  VibrateHelp.vSimple(v.getContext(), VIBRATE_TIME);
 }
}

最後,在給按鈕設置監聽時,使用類ViewClickVibrate,如下所示:MainActivity.java

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
 
public class MainActivity extends Activity {
 Button btn1;
 Button btn2;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  btn1 = (Button) findViewById(R.id.button1);
  btn2 = (Button) findViewById(R.id.button2);
  btn1.setOnClickListener(new ViewClickVibrate() {
   public void onClick(View v) {
    super.onClick(v);
    // TODO
   }
  });
  btn2.setOnClickListener(new ViewClickVibrate() {
   public void onClick(View v) {
    super.onClick(v);
    // TODO
   }
  });
 }
 
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }
}

也可以自定義其他控件的單擊事件,實現單擊震動效果,類似上面改之即可。

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: