还记得textview的抖动震动效果么,真的很赞,相信这个知识点能帮助到你们很多 。
第一步 加权限
<uses-permission android:name="android.permission.VIBRATE"/>
第二步,设置一个button按钮点击事件 numberAddressQuery
开始贴代码
private Vibrator vibrator; //振动
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_number_addres_query);
vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);//得到震动的服务
}
public void numberAddressQuery(View view){
String phone = ed_phone.getText().toString().trim();
if(TextUtils.isEmpty(phone)){
Toast.makeText(this, "号码为空", 0).show();
<span style="white-space:pre"> </span><span style="color:#ff0000;">//抖动的效果,关键就在于shake布局文件里</span>
Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
ed_phone.startAnimation(shake);
//当电话号码为空的时候,就去振动手机提醒用户
// vibrator.vibrate(2000);//抖动2秒
long[] pattern = {200,200,300,300,1000,2000};
//-1不重复 0循环振动 1;
vibrator.vibrate(pattern, -1);
return;
}else{
String address = NumberAddressQueryUtils.queryNumber(phone);
result.setText(address);
shake.xml 此代码可以在谷歌官方中找到 可以去看看官方文档
<?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" />
仔细看看 其中还有插入式的interpolator
cycle_7.xml
<?xml version="1.0" encoding="utf-8"?>
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
android:cycles="7" />
android:cycles="7" 是指 抖动7次