本文实例介绍了Android实现手机震动、抖动效果,分享给大家供大家参考,具体内容如下
(1)布局文件如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
< RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:tools = "http://schemas.android.com/tools"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:paddingBottom = "@dimen/activity_vertical_margin"
android:paddingLeft = "@dimen/activity_horizontal_margin"
android:paddingRight = "@dimen/activity_horizontal_margin"
android:paddingTop = "@dimen/activity_vertical_margin"
tools:context = ".MainActivity" >
< EditText
android:id = "@+id/et_text"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_alignParentLeft = "true"
android:layout_alignParentRight = "true"
android:layout_alignParentTop = "true"
android:layout_marginTop = "16dp"
android:ems = "10" >
< requestFocus />
</ EditText >
< Button
android:id = "@+id/btn_submit"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:layout_alignLeft = "@+id/et_text"
android:layout_below = "@+id/et_text"
android:layout_marginTop = "38dp"
android:text = "提交" />
</ RelativeLayout >
|
(2)MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
package com.example.test11;
import android.app.Activity;
import android.os.Bundle;
import android.os.Vibrator;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText et_text;
private Button btn_submit;
/**
* 手机振动器
*/
private Vibrator vibrator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_text = (EditText) this .findViewById(R.id.et_text);
btn_submit = (Button) this .findViewById(R.id.btn_submit);
// 震动效果的系统服务
vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
btn_submit.setOnClickListener( new OnClickListener() {
String text = et_text.getText().toString().trim();
public void onClick(View v) {
if (TextUtils.isEmpty(text)) {
Toast.makeText(MainActivity. this , "内容为空" , 0 ).show();
Animation shake = AnimationUtils.loadAnimation(
MainActivity. this , R.anim.shake);
et_text.startAnimation(shake);
/*
* 震动的方式
*/
// vibrator.vibrate(2000);//振动两秒
// 下边是可以使震动有规律的震动 -1:表示不重复 0:循环的震动
long [] pattern = { 200 , 2000 , 2000 , 200 , 200 , 200 };
vibrator.vibrate(pattern, - 1 );
}
}
});
}
}
|
(3)使用到的两个动画文件如下:
cycle_7.xml
1
2
3
|
<? xml version = "1.0" encoding = "utf-8" ?>
< cycleInterpolator xmlns:android = "http://schemas.android.com/apk/res/android"
android:cycles = "7" />
|
shake.xml
1
2
3
4
5
6
|
<? xml version = "1.0" encoding = "utf-8" ?>
< translate xmlns:android = "http://schemas.android.com/apk/res/android"
android:duration = "1000"
android:fromXDelta = "0"
android:interpolator = "@anim/cycle_7"
android:toXDelta = "10" />
|
(4)需要使用的权限:
1
|
<uses-permission android:name= "android.permission.VIBRATE" />
|
希望本文所述对大家学习Android软件编程有所帮助。