经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 移动开发 » Android » 查看文章
Android应用实现点击按钮震动
来源:jb51  时间:2021/9/27 11:05:55  对本文有异议

本项目为大家分享了Android应用实现点击按钮震动的具体代码,供大家参考,具体内容如下

项目中需要实现点击应用中的按钮,有震动效果。震动效果可以在设置中进行关闭。

具体实现如下。

编写震动帮助类:VibrateHelp.java

  1. import android.content.Context;
  2. import android.os.Vibrator;
  3. /**
  4. * 震动帮助类
  5. * androidManifest.xml中加入 以下权限
  6. * <uses-permission android:name="android.permission.VIBRATE" />
  7. */
  8. public class VibrateHelp {
  9. private static Vibrator vibrator;
  10. /**
  11. * 简单震动
  12. * @param context 调用震动的Context
  13. * @param millisecond 震动的时间,毫秒
  14. */
  15. @SuppressWarnings("static-access")
  16. public static void vSimple(Context context, int millisecond) {
  17. vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
  18. vibrator.vibrate(millisecond);
  19. }
  20. /**
  21. * 复杂的震动
  22. * @param context 调用震动的Context
  23. * @param pattern 震动形式
  24. * @param repeate 震动的次数,-1不重复,非-1为从pattern的指定下标开始重复
  25. */
  26. @SuppressWarnings("static-access")
  27. public static void vComplicated(Context context, long[] pattern, int repeate) {
  28. vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
  29. vibrator.vibrate(pattern, repeate);
  30. }
  31. /**
  32. * 停止震动
  33. */
  34. public static void stop() {
  35. if (vibrator != null) {
  36. vibrator.cancel();
  37. }
  38. }
  39. }

下面自定义实现按钮单击震动类:ViewClickVibrate.java

  1. import android.view.View;
  2.  
  3. import android.view.View.OnClickListener;
  4. public class ViewClickVibrate implements OnClickListener{
  5. /** 按钮震动时间 */
  6. private final int VIBRATE_TIME = 60;
  7. @Override
  8. public void onClick(View v) {
  9. // TODO 根据设置中的标记判断是否执行震动
  10. VibrateHelp.vSimple(v.getContext(), VIBRATE_TIME);
  11. }
  12. }

最后,在给按钮设置监听时,使用类ViewClickVibrate,如下所示:MainActivity.java

  1. import android.app.Activity;
  2. import android.os.Bundle;
  3. import android.view.Menu;
  4. import android.view.View;
  5. import android.widget.Button;
  6. public class MainActivity extends Activity {
  7. Button btn1;
  8. Button btn2;
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.activity_main);
  13. btn1 = (Button) findViewById(R.id.button1);
  14. btn2 = (Button) findViewById(R.id.button2);
  15. btn1.setOnClickListener(new ViewClickVibrate() {
  16. public void onClick(View v) {
  17. super.onClick(v);
  18. // TODO
  19. }
  20. });
  21. btn2.setOnClickListener(new ViewClickVibrate() {
  22. public void onClick(View v) {
  23. super.onClick(v);
  24. // TODO
  25. }
  26. });
  27. }
  28. @Override
  29. public boolean onCreateOptionsMenu(Menu menu) {
  30. // Inflate the menu; this adds items to the action bar if it is present.
  31. getMenuInflater().inflate(R.menu.main, menu);
  32. return true;
  33. }
  34. }

也可以自定义其他控件的单击事件,实现单击震动效果,类似上面改之即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号