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