Android(java)学习笔记54:Android 调用Vibrator震动功能
1. 之前我编写的代码是如下:
package com.himi.vibrate; import android.app.Activity;
import android.app.Service;
import android.content.res.AssetManager;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity implements OnClickListener {
private Button btnLow;
private Button btnNormal;
private Button btnFast; Vibrator vibrator; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); vibrator = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE); btnLow = (Button) findViewById(R.id.btnlow);
btnNormal = (Button) findViewById(R.id.btnnormal);
btnFast = (Button) findViewById(R.id.btnfast);
//下面这五行代码是实现button上面的文字显示楷体,不用理会 AssetManager mgr = getAssets();
Typeface tf = Typeface.createFromAsset(mgr, "fonts/DroidSansFallback.ttf"); btnLow.setTypeface(tf);
btnNormal.setTypeface(tf);
btnFast.setTypeface(tf); } @Override
public void onClick(View v) {
if (v.equals(btnLow)) {
vibrator.vibrate(new long[] {1000,30,100,1000},0);
}
if (v.equals(btnNormal)) { vibrator.vibrate(new long[] {800,40,400,30},0);
}
if (v.equals(btnFast)) {
vibrator.vibrate(new long[] {30,100,20,50},0);
} } protected void onStop() {
if(null!=vibrator){
vibrator.cancel();
}
super.onStop();
}
}
2. 后来才知道原来问题是如此简单,修改完的代码如下:
package com.himi.vibrate; import android.app.Activity;
import android.app.Service;
import android.content.res.AssetManager;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity implements OnClickListener {
private Button btnLow;
private Button btnNormal;
private Button btnFast; Vibrator vibrator; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); vibrator = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE); btnLow = (Button) findViewById(R.id.btnlow);
btnNormal = (Button) findViewById(R.id.btnnormal);
btnFast = (Button) findViewById(R.id.btnfast); AssetManager mgr = getAssets();
Typeface tf = Typeface.createFromAsset(mgr, "fonts/DroidSansFallback.ttf"); btnLow.setTypeface(tf);
btnNormal.setTypeface(tf);
btnFast.setTypeface(tf); //之前没有加这3条语句,振动服务是没有响应的。后来发现这是语法没有弄清楚,我就是个傻逼
btnFast.setOnClickListener(this);//监听当前MainActivity
btnNormal.setOnClickListener(this);//监听当前MainActivity
btnLow.setOnClickListener(this);//监听当前MainAcitivity } @Override
public void onClick(View v) {
if (v.equals(btnLow)) {
vibrator.vibrate(new long[] {1000,30,100,1000},0);
}
if (v.equals(btnNormal)) { vibrator.vibrate(new long[] {800,40,400,30},0);
}
if (v.equals(btnFast)) {
vibrator.vibrate(new long[] {30,100,20,50},0);
} } protected void onStop() {
if(null!=vibrator){
vibrator.cancel();
}
super.onStop();
}
}
3. 总结
这里是MainAcitivity实现了OnClickListener接口,所以接口监听功能是属于当前MainActivity的,所以是要监听当前MainActivity的:
语法格式如下:
public class MainActivity extends Activity implements OnClickListener {
………………
public void onCreate(Bundle savedInstanceState) {
…………
btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(this);//监听当前Acitivity,当然这里监听的就是MainActivity
}
public void onClick(View v) {
if (v.equals(btn1)) {
…………
}
……………………
}
Android(java)学习笔记54:Android 调用Vibrator震动功能的更多相关文章
- Android(java)学习笔记113:Android编写代码调用Vibrator震动功能(Bug:按下按钮button始终没有震动)
1.之前我编写的代码是如下: package com.himi.vibrate; import android.app.Activity; import android.app.Service; im ...
- Java学习笔记54(反射详解)
反射概念: java反射机制是在运行状态中,对于任意一个类,都能知道所有属性和方法 对于任意一个对象都能调用它的任意一个方法和属性,这种动态获取和调用的功能称为java的反射机制 实际作用: 已经完成 ...
- Android开发学习笔记-关于Android的消息推送以及前后台切换
下面是最简单的Android的消息推送的实现方法 package com.example.shownotic; import java.util.Random; import android.supp ...
- Java学习笔记——内部类及其调用方法
一.static内部类的static方法 public class Test0719_Inner_Test { public static void main(String[] args) { //s ...
- Android 数字签名学习笔记
Android 数字签名学习笔记 在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的pro ...
- java学习笔记之基础篇
java选择语句之switch //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...
- Android动画学习笔记-Android Animation
Android动画学习笔记-Android Animation 3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...
- Android自动化学习笔记:编写MonkeyRunner脚本的几种方式
---------------------------------------------------------------------------------------------------- ...
- Android自动化学习笔记之MonkeyRunner:官方介绍和简单实例
---------------------------------------------------------------------------------------------------- ...
随机推荐
- (转)linux命令详解之useradd命令使用方法
linux命令详解之useradd命令使用方法 原文:http://blog.csdn.net/u011537073/article/details/51987121 Linux 系统是一个多用户多任 ...
- 重拾简单的linux指令之info 【转】
info命令 可以利用该命令获取帮助 1. 语法格式:info <command> 2. 语法简述: 类似于man命令的获取帮助信息,比较于man命令更容易读.是以网页的结构来显示内容.而 ...
- [linux]解决DNS配置重启丢失
DNS配置重启丢失 每次重启后都修改DNS配置文件 /etc/resolv.conf从网上得知 /etc/resolv.conf中的DNS配置是从/etc/resolvconf/resolv.conf ...
- TreeMap和TreeSet简单应用
建一个实体类并实现Comparable接口重写compareTo方法 public class pojo implements Comparable<pojo> { private int ...
- BNU29140——Taiko taiko——————【概率题、规律题】
Taiko taiko Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java class ...
- 【Linux】快速清空当前文件
$ : > filename $ > filename $ echo "" > filename $ echo > filename $ cat /dev/ ...
- MySQL中设置同一张表中一个字段的值等于另一个字段的值
今天遇到了一个需求,我在一张表中新增了一个字段,因为这张表以前已经有很多数据了,这样对于以前的数据来说,新增的这个字段的值也就是为该字段的默认值,现在需要将新增的这个字段添加上数据,数据来源为同表的另 ...
- File 类 的基本操作
// File 类(静态类) File 的缺点:只能用来读小文件 (它是一下子全都读进去) //创建一个文件 // File.Create(@"C:\Users\wbrm\Deskto ...
- C# ADO.NET 面向对象
ADO.NET跟面向对象的结合 把面向对象跟数据库连接用 在项目里面创建一个新的文件夹 名字为App_Code 在这个App_Code里面创建几个类 主要为拆分问题,标上序号,先干什么在干什么 实 ...
- Menu 的key dispatch
DecorView