Android 点击Button 实现震动效果

学习自:网络


Overview

在Android 的点击效果中,遇到震动效果的还是很多的。

接下来就让我们看一下如何实现震动效果。


所需要的权限

如果我们在开发中需要使用到我们的震动,那么我们就需要申请一下权限:

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

这样我们的权限就申请好了。


我们震动效果的帮助类

创建一个名为VibrateHelp的点击震动的帮助类。

然后看一下如何使用他的把:

public class VibrateHelp {
private static Vibrator vibrator;
/**
* @ClassName:VibrateHelp - 简单的震动
* @author:CaoJiaHao
* @Param:context 调用震动类的 context
* @param:millisecond 震动的时间
*/
@SuppressWarnings("static-access")
public static void vSimple(Context context, int millisecode) {
vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
vibrator.vibrate(millisecode);
}
/**
* @param : pattern 震动的形式
* @param : repeate 震动循环的次数
* @ClassName:VibrateHelp - 复杂的震动
* @author:CaoJiaHao
* @Param: context 调用复杂震动的context
**/
@SuppressWarnings("static-access")
public static void vComplicated(Context context, long[] pattern, int repeate) {
vibrator = (Vibrator) context.getSystemService(context.VIBRATOR_SERVICE);
vibrator.vibrate(pattern, repeate);
}
/**
*@ClassName:VibrateHelp - 停止震动
*@author:CaoJiaHao
**/
public static void stop() {
if (vibrator != null)
vibrator.cancel();
}
}

这样的话我们的 震动帮助类就完成呢。

然后我们根据我们的源码来分析一下:

  1. 我们需要将Vibrator 实例化一下。
  2. 然后我们创建我么你的简单的震动模式。
  3. 接着创建我们比较复杂的震动模式。

    这样我们的点击震动帮助类就完成了。

但是我们光有了帮助类是远远不够的。我们还需要调用他才可以,不然我们的Helper Class 没有任何作用。


封装我们的震动点击事件

首先,我们创建一个类,让他控制我们的点击震动效果。

我们创建一个名为ViewClickVibrate。然后先看一下源代码:

public class ViewClickVibrate implements View.OnClickListener {
private final int VIBRATE_TIME = 60;
@Override
public void onClick(View v) {
VibrateHelp.vSimple(v.getContext(), VIBRATE_TIME);
}
}

这个就是我们的源代码,但是需要注意的是,我们封装的这个类,需要去调用我们的View.OnClickListener的接口.

这样我们的点击效果算是全部完成了。

最后我们看一下如何实现他吧。

ImageCategory.setOnClickListener(new ViewClickVibrate() {
public void onClick(View v) {
super.onClick(v);
Global.Go(FinanceActivity.this, CategoryActivity.class);
}
});

这样的一个点击效果就完成了。

Android 为点击事件添加震动效果的更多相关文章

  1. [Android]Java中点击事件的四种写法

    点击事件的必备条件:实现OnClickListener接口,重写onclick(View v)方法 以拨号简单案例为例,如下图效果: 逻辑流程: 获取点击对象,获取数据 给对象设置监听类 实现OnCl ...

  2. Android journey3 @点击事件的4种写法

    对于android布局中的控件,如Button等会有相应的点击事件去响应它所需要的功能,今天我们就以电话拨号器的代码说明下几种点击事件: package com.itheima.phone; impo ...

  3. iOS 添加震动效果

    开发过程中,有时候会碰到点击按钮或者某个动画会配合震动效果:下面介绍iOS开发过程中的震动添加: 导入:#import <AudioToolbox/AudioToolbox.h> 在需要出 ...

  4. html动态元素点击事件添加

    很多时候,页面的元素是后期异步动态添加在页面上.页面点击事件无效. 非动态的元素直接$().click();便可以直接触发点击事件,而动态元素需要事先注册事件. $(document).on('cli ...

  5. RecyclerView的点击事件添加-------接口回调的形式添加

    package com.example.recyclerviewdemo; import android.support.v7.widget.RecyclerView; import android. ...

  6. Android——自定义多击事件

    一:使用场景 Android本身内置了点击.双击事件,但是某些时候,我们可能需要多击事件. 例如:某个秘密入口,为了避免用户误操作点击.双击到了触发开关而进入到不该被用户看到的页面,我们可以为入口控件 ...

  7. Android笔记---点击事件的四种写法

    Android 点击事件的四种写法: 1. 以内部类的形式实现 OnClickListener 接口.定义点击事件 class MainActivity extents Activity{ // .. ...

  8. Android实现点击事件的4种方式

    一.通过在activity_main.xml中,按钮button控件中添加onclick事件实现 在   activity_main.xml 对应的按钮Button中加入下面红色事件 <Butt ...

  9. ios访问web页面<div>点击事件不起效果,以及alert()显示url的解决办法

    ios访问web页面<div>点击不起效果,在其div上添加style=”cursor:pointer:“ jquery web页面动态append()事件调用方法:$(document) ...

随机推荐

  1. 数据结构---Java---HashMap---JDK1.7

    源码解读 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Clone ...

  2. 微信支持的Authorization code授权模式(公众号开发)(开放平台资料中心中的代公众号发起网页授权)

    链接:https://blog.csdn.net/ASZJBGD/article/details/82838356 主要流程分为两步: 1.获取code 2.通过code换取accesstoken 流 ...

  3. 二分图最大权匹配——KM算法

    前言 这东西虽然我早就学过了,但是最近才发现我以前学的是假的,心中感慨万千(雾),故作此篇. 简介 带权二分图:每条边都有权值的二分图 最大权匹配:使所选边权和最大的匹配 KM算法,全称Kuhn-Mu ...

  4. OC学习篇之---单例模式

    在之前的一片文章中介绍了对象的拷贝相关知识:http://blog.csdn.net/jiangwei0910410003/article/details/41926531,今天我们来看一下OC中的单 ...

  5. CentOS系统更换软件安装源yum

    第一步:备份你的原镜像文件,以免出错后可以恢复. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back ...

  6. ubuntu16安装,配置前端开发环境

    1.安装ubuntu    使用usio制作U盘安装工具 2.安装搜狗输入法 3.安装QQ 4.安装nodejs node-v0.12.4 node-v0.12.4.tar.gz root@ubunt ...

  7. Python常用模块系列

    1.时间模块 import time,datetime # print(time.time()) #时间戳 # print(time.strftime("%Y-%m-%d %X") ...

  8. leetcode.矩阵.378有序矩阵中第K小的元素-Java

    1. 具体题目 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素.请注意,它是排序后的第k小元素,而不是第k个元素. 示例: matrix = [ [ 1,  5, ...

  9. springCloud的使用01-----服务的注册和发现

    1 搭建eureka注册服务器 1.1 创建springboot项目,导入相应的jar包依赖 <project xmlns="http://maven.apache.org/POM/4 ...

  10. Failed! Error: Unknown error 1130

    如有需要可以加我Q群[308742428]大家一起讨论技术,有偿服务. 后面会不定时为大家更新文章,敬请期待. 喜欢的朋友可以关注下. 在使用navicat远程连接mysql报了一个错误信息 Fail ...