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
|
<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
|
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" /> |
这个效果一般只有在真机上可以做到,不在上图展示。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/xlgen157387/article/details/44679613