zoukankan      html  css  js  c++  java
  • Android模拟键盘输入功能的实现

            在做关于输入框的操作指引时,用动态的输入效果比用静态的图片指示效果会好非常多,本文结合近期须要实现的一个搜索输入操作指引的功能介绍一下android平台模拟键盘输入的实现。

            在android上不知道怎么录制gif的动态图,直接截图看一下效果吧,详细看demo即可啦。


           实现起来非常easy,开一个线程。通过sleep控制输入字符的间隔时间,封装一个模拟键盘输入的方法,终于代码是这样子的:

    public class TypeInActivity extends BaseActivity {
    	@Override
    	public void setContentView() {
    		setContentView(R.layout.activity_type_in_layout);
    	}
    
    	@Override
    	public void findViews() {
    		
    	}
    
    	@Override
    	public void getData() {
    		
    	}
    
    	@Override
    	public void showConent() {
    		showGuide( );
    	}
    	
    	public void onClick( View v ){
    		switch( v.getId( ) ){
    		case R.id.searchBtnId:{
    			
    		}
    		break;
    		default:{
    			
    		}
    		break;
    		}
    	}
    	
    	private void showGuide( ){
    		new Thread( new Runnable( ) {
    			@Override
    			public void run() {
    				try {
    					Thread.sleep( 1000 );
    				} catch (InterruptedException e1) {
    					e1.printStackTrace();
    				}
    				
    				// “旋转”的拼音
    				int[] keyCodeArray = new int[]{KeyEvent.KEYCODE_X,KeyEvent.KEYCODE_U,KeyEvent.KEYCODE_A,KeyEvent.KEYCODE_N,KeyEvent.KEYCODE_SPACE,KeyEvent.KEYCODE_Z,KeyEvent.KEYCODE_H,KeyEvent.KEYCODE_U,KeyEvent.KEYCODE_A,KeyEvent.KEYCODE_N};
    				for( int keycode : keyCodeArray ){
    					try {
    						typeIn( keycode );
    						Thread.sleep( 200 );
    					} catch (InterruptedException e) {
    						e.printStackTrace();
    					}
    				}
    			}
    		}).start( );
    	}
    	
    	private void typeIn( final int KeyCode ){
    		try {
    			Instrumentation inst = new Instrumentation();
    			inst.sendKeyDownUpSync( KeyCode );
    		} catch (Exception e) {
    			Log.e("Exception when sendKeyDownUpSync", e.toString());
    		}
    	}
    }

    BaseActivity.java:(个人已经习惯这样写了。。。)

    public abstract class BaseActivity extends Activity {
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		init( );
    	}
    	
    	private void init( ){
    		setContentView( );
    		findViews( );
    		getData( );
    		showConent( );
    	}
    	
    	public abstract void setContentView( );
    	public abstract void findViews( );
    	public abstract void getData( );
    	public abstract void showConent( );
    }
            再找一个模拟打字的音效。在模拟输入的时候播放打字音效,效果还是能够的。

    。。


  • 相关阅读:
    看完一本,加油
    一个简单的动作,让你的手机号码变成空号
    Goldwave心得
    UML设计初步 基本概念一(actor, use case)
    ASP.NET控件开发 概念和HelloWorld控件
    控件的呈现
    ASP.NET控件生命周期
    ASP老项目中如何搜索一个文件在哪些地方被引用
    PL/SQL语法 游标
    2009编程语言排名
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7065980.html
Copyright © 2011-2022 走看看