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。
推薦閱讀:
- Android利用SoundPool實現音樂池
- Android四大組件之Activity詳細介紹
- Android實現Tab切換界面功能詳解
- Android基礎入門之dataBinding的簡單使用教程
- Android顏色處理SweepGradient掃描及梯度渲染示例