码迷,mamicode.com
首页 > 其他好文 > 详细

18.文本监听&插补器

时间:2015-10-29 21:36:30      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

  1. /**
  2. * 归属地查询页面
  3. *
  4. * @author Kevin
  5. *
  6. */
  7. public class AddressActivity extends Activity {
  8. private EditText etNumber;
  9. private TextView tvResult;
  10. @Override
  11. protected void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.activity_address);
  14. etNumber = (EditText) findViewById(R.id.et_number);
  15. tvResult = (TextView) findViewById(R.id.tv_result);
  16. // 监听EditText的变化
  17. etNumber.addTextChangedListener(new TextWatcher() {
  18. // 文字 发生变化时的回调
  19. @Override
  20. public void onTextChanged(CharSequence s, int start, int before,
  21. int count) {
  22. String address = AddressDao.getAddress(s.toString());
  23. tvResult.setText(address);
  24. }
  25. // 文字变化前的回调
  26. @Override
  27. public void beforeTextChanged(CharSequence s, int start, int count,
  28. int after) {
  29. }
  30. // 文字变化结束之后的回调
  31. @Override
  32. public void afterTextChanged(Editable s) {
  33. }
  34. });
  35. }
  36. /**
  37. * 开始查询
  38. *
  39. * @param view
  40. */
  41. public void query(View view) {
  42. String number = etNumber.getText().toString().trim();
  43. if (!TextUtils.isEmpty(number)) {
  44. String address = AddressDao.getAddress(number);
  45. tvResult.setText(address);
  46. } else {
  47. Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
  48. // shake.setInterpolator(new Interpolator() {
  49. //
  50. // @Override
  51. // public float getInterpolation(float x) {
  52. // //y=ax+b
  53. // int y=0;
  54. // return y;
  55. // }
  56. // });
  57. etNumber.startAnimation(shake);
  58. vibrate();
  59. }
  60. }
  61. /**
  62. * 手机震动, 需要权限 android.permission.VIBRATE
  63. */
  64. private void vibrate() {
  65. Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);
  66. // vibrator.vibrate(2000);震动两秒
  67. vibrator.vibrate(new long[] { 1000, 2000, 1000, 3000 }, -1);// 先等待1秒,再震动2秒,再等待1秒,再震动3秒,
  68. // 参2等于-1表示只执行一次,不循环,
  69. // 参2等于0表示从头循环,
  70. // 参2表示从第几个位置开始循环
  71. // 取消震动vibrator.cancel()
  72. }
  73. }

插补器(抖动)interpolator
别的项目可以导入,如果不行可以new一个工程,不是安卓工程,选择要导入的项目就可以,如果出现很多错误,优先考虑资源文件 ,有可能需要改版本,改project.properties就可以
技术分享

在anim(动画)目录下新建文件x.xml
技术分享

  1. <translate xmlns:android="http://schemas.android.com/apk/res/android"
  2. android:duration="1000"//持续时间
  3. android:fromXDelta="0"
  4. android:interpolator="@anim/cycle_7"//插补器
  5. android:toXDelta="10" />
  1. cycle_7//7此默认的
  2. <cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android" android:cycles="7" />
  1. Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
  2. // shake.setInterpolator(new Interpolator() {
  3. //
  4. // @Override
  5. // public float getInterpolation(float x) {
  6. // //y=ax+b
  7. // int y=0;
  8. // return y;
  9. // }
  10. // });
  11. etNumber.startAnimation(shake);
  12. vibrate();






















18.文本监听&插补器

标签:

原文地址:http://www.cnblogs.com/liuyu0529/p/4921794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!