Android入門教程之Vibrator(震動器)_Android

來源:互聯網
上載者:User

前言:

Vibrator簡介:

 下面我們就來寫個簡單的例子,來熟悉下這個Vibrator的用法!

1.獲得Vibrator執行個體:

Vibrator vb = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE);

2.可以使用的相關方法:

1.stract void cancel():關閉或者停止震動器

2.tract boolean hasVibrator():判斷硬體是否有震動器

3.id vibrate(long milliseconds):控制手機震動為milliseconds毫秒

4.id vibrate(long[] pattern,int repeat):指定手機以pattern指定的模式震動! 比如:pattern為new int[200,400,600,800],就是讓他在200,400,600,800這個時間交替啟動與關閉震動器! 而第二個則是重複次數,如果是-1的只震動一次,如果是0的話則一直震動 還有其他兩個方法用得不多~ 對了,使用震動器還需要在AndroidManifest.xml中添加下述許可權: <uses-permission android:name="android.permission.VIBRATE"/>

3.使用樣本:設定頻率不同的震動器:

對於Vibrator用的最廣泛的莫過於所謂的手機按摩器類的app,在app市場一搜,一堆,筆者隨便下了 幾個下來瞅瞅,都是大同小異的,這點小玩意竟然有8W多的下載量...好吧,好像也不算多, 不過普遍功能都是切換震動頻率來完成,而所謂的按摩效果,是否真的有效就不得而知了, 那麼接下來我們就來實現一個簡單的按摩器吧! 核心其實就是:vibrate()中的數組的參數,根據自己需求寫一個數組就可以了! 下述代碼需要在真機上進行測試!

運行效果圖:

實現代碼:

簡單的布局檔案,五個按鈕:activity_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical">    <Button    android:id="@+id/btn_hasVibrator"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="判斷是否有震動器" />  <Button    android:id="@+id/btn_short"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="短震動" />  <Button    android:id="@+id/btn_long"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="長震動" />  <Button    android:id="@+id/btn_rhythm"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="節奏震動" />  <Button    android:id="@+id/btn_cancle"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="取消震動" /></LinearLayout>

接著是MainActivity.java部分:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {  private Button btn_hasVibrator;  private Button btn_short;  private Button btn_long;  private Button btn_rhythm;  private Button btn_cancle;  private Vibrator myVibrator;  private Context mContext;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    //獲得系統的Vibrator執行個體:    myVibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);    mContext = MainActivity.this;    bindViews();  }  private void bindViews() {    btn_hasVibrator = (Button) findViewById(R.id.btn_hasVibrator);    btn_short = (Button) findViewById(R.id.btn_short);    btn_long = (Button) findViewById(R.id.btn_long);    btn_rhythm = (Button) findViewById(R.id.btn_rhythm);    btn_cancle = (Button) findViewById(R.id.btn_cancle);    btn_hasVibrator.setOnClickListener(this);    btn_short.setOnClickListener(this);    btn_long.setOnClickListener(this);    btn_rhythm.setOnClickListener(this);    btn_cancle.setOnClickListener(this);  }  @Override  public void onClick(View v) {    switch (v.getId()) {      case R.id.btn_hasVibrator:        Toast.makeText(mContext, myVibrator.hasVibrator() ? "當前裝置有震動器" : "當前裝置無震動器",            Toast.LENGTH_SHORT).show();        break;      case R.id.btn_short:        myVibrator.cancel();        myVibrator.vibrate(new long[]{100, 200, 100, 200}, 0);        Toast.makeText(mContext, "短震動", Toast.LENGTH_SHORT).show();        break;      case R.id.btn_long:        myVibrator.cancel();        myVibrator.vibrate(new long[]{100, 100, 100, 1000}, 0);        Toast.makeText(mContext, "長震動", Toast.LENGTH_SHORT).show();        break;      case R.id.btn_rhythm:        myVibrator.cancel();        myVibrator.vibrate(new long[]{500, 100, 500, 100, 500, 100}, 0);        Toast.makeText(mContext, "節奏震動", Toast.LENGTH_SHORT).show();        break;      case R.id.btn_cancle:        myVibrator.cancel();        Toast.makeText(mContext, "取消震動", Toast.LENGTH_SHORT).show();    }  }}

對了,別漏了震動器許可權哦!

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

小結:

好了,本文我們學習了Vibrator(震動器)的基本使用,代碼非常簡單,還不趕緊加入到 你的APP中,讓你的應用HI起來~

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.