在做关于输入框的操作指引时,用动态的输入效果比用静态的图片指示效果会好非常多,本文结合近期须要实现的一个搜索输入操作指引的功能介绍一下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( ); }再找一个模拟打字的音效。在模拟输入的时候播放打字音效,效果还是能够的。
。。