AndroidEditText添加各种效果抖动-震动-内容变化自动查询

来源:互联网 发布:淘宝购物网页面源代码 编辑:程序博客网 时间:2024/05/22 04:43

文本框添加各种效果抖动/震动/内容变化自动查询 – 搜索项目

输入内容为空查询的蛇形抖动

  • 蛇形抖动在ApiDemos中的Views->Animation->Shake中就有输入内容为空时查询的蛇形抖动.

如何快速查找到别人项目中的代码

  • 我们可以使用他们的代码,将ApiDemos添加到Eclipse中,Ctrl+H查找当前项目的所有file文件,输入页面中看到的”Please enter your password”; 可以找到一个strings文件,找到该字符串对应的name值为”animation_1_instructions”,我们看到的界面的Xml资源文件中肯定引用了该字符串的name;继续查找animation_1_instructions,可以找到资源文件animation_1.xml,这个文件就是我们在应用中看到的蛇形抖动的界面,这个资源文件对应的的Activity肯定以该文件资源的名称作为一个View对象;我们继续在所有的java文件中搜索animation_1,就找到了对应的Activity,该Activity提供了点击资源文件中按钮的点击事件,代码如下:

    public void onClick(View v) {
    Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
    findViewById(R.id.pw).startAnimation(shake);
    }

  • 3.我们就找到了蛇形抖动的代码直接复制,我们看到代码中有一个蛇形动画的文件,找到也复制到我们的anim文件夹下,然后发现有一个错误,需要另外一个动画文件夹中的cycle_7.xml文件(该文件是一个插入器文件,该文件中插入了动画的效果),我们的代码就可以正常运行了

查询为空时的手机震动

想要手机震动需要获取一个系统服务,代码如下:
vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);//系统震动服务
* 在需要震动的时候直接调用其方法即可,代码如下:
* 第一个参数是一个long类型的数组,我们需要根据第二个参数设置,循环一次(共两次)需要设置(震动时间,停止时间,第二次震动时间,第二次停止时间);第二个参数是循环次数,不需要循环设为-1;但是其中有bug可能会震动不停

vibrator.vibrate(new long[]{500,1000,2000,1000}, 1);

内容变化自动查询

需要为输入框设置一个内容改变的监听,监听内容改变的各种变化,在发生某种变化时进行相应的操作,代码如下:

        /**     * 文本输入框内容发生改变时回调该方法     */    et_input_number.addTextChangedListener(new TextWatcher() {        @Override        /**          文本内容改变时         */        public void onTextChanged(CharSequence s, int start, int before, int count) {}        @Override        /**          文本内容改变前         */        public void beforeTextChanged(CharSequence s, int start, int count,                int after) {}        @Override        /**          文本内容改变后         */        public void afterTextChanged(Editable s) {            String number = s.toString();//Editable就是文本中的内容,转换成字符串就可以直接使用            if(number.length() < 3 || number.length() > 12){                return;            }            queryDB(number);        }    });

* 子线程中查询完数据库可以向主线程发消息刷新UI

2 0