实现按下去震动,松开停止。
####1、监听某一组件的touch事件
package com.example.lumeng.myapplication;
import android.content.Context;
import android.os.Vibrator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnTouchListener {
TextView txv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txv=(TextView) findViewById(R.id.vibratore);
txv.setOnTouchListener(this);
}
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Vibrator vb=(Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
//按下文字
if(motionEvent.getAction()==MotionEvent.ACTION_DOWN){
vb.vibrate(new long[]{0,100,1000,100},2); //表示按下时每秒震动0.1秒,不断重复
// vb.vibrate(5000); //震动5s
}
else if(motionEvent.getAction()==MotionEvent.ACTION_UP){
vb.cancel(); //停止震动
}
return true;
}
}
####2、实现整体屏幕的触动事件
package com.example.lumeng.myapplication;
import android.content.Context;
import android.os.Vibrator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView txv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onTouchEvent(MotionEvent motionEvent) {
Vibrator vb=(Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
//按下文字
if(motionEvent.getAction()==MotionEvent.ACTION_DOWN){
vb.vibrate(new long[]{0,100,1000,100},2); //表示按下时每秒震动0.1秒,不断重复
// vb.vibrate(5000); //震动5s
}
else if(motionEvent.getAction()==MotionEvent.ACTION_UP){
vb.cancel(); //停止震动
}
return true;
}
}
类本身内建了touch监听功能,直接调用onTouchEvent()方法。
####3、添加权限
AndroidManifest.xml中添加VIBRATE权限
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.lumeng.myapplication">
<uses-permission android:name="android.permission.VIBRATE"/>
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
文献参考:
android app开发入门 施威铭 编著
本人郑重声明,本博客所著文章、图片版权归权利人持有,本博只做学习交流分享所用,不做任何商业用途。访问者可將本博提供的內容或服务用于个人学习、研究或欣赏,不得用于商业使用。同時,访问者应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人的合法权利;如果用于商业用途,须征得相关权利人的书面授权。若以上文章、图片的原作者不愿意在此展示內容,请及时通知在下,將及时予以刪除。