android 软键盘移动焦点 转载
2011-08-03 21:18
288 查看
软键盘上移动焦点 :
在TV上的软键盘不需要再在TV上touch软键盘按钮,需要通过遥控器进行操作,因此需要在软键盘上知道目前是在哪个键子上,这需要通过焦点来实现。
LatinIME输入法改写功能代码:
添加功能:为输入法软键盘键子添加焦点(边框),并支持键盘上的方向键,在按上下左右方向键时,焦点跟着方向键移动;并支持键盘回车按钮,在按下回车键后,将软键盘对应键子内容输入到editor(编辑框);
代码修改描述:
要拦截键盘的按钮事件,需要在代码中重写onKeyDown(int keyCode, KeyEvent event)方法,参数keyCode可以是键盘上按键对应的KeyEevent中的值。要使有效输入法拦截键盘上按键事件,需要在特定类中重写onKeyDown(int keyCode, KeyEvent event)方法。一开始我重写的是LatinKeyboardView中的onKeyDown(int keyCode, KeyEvent event)方法,但在运行后,没有拦截到键盘上的方向键按钮的down事件,后经过查询相关的知识点,知道了输入法的执行入口是InputMethodService类及其子类,在其中有创建输入法软键盘的一系列回调方法,用以创建输入视图,候选区视图等。要拦截键盘的按钮事件,也需要在InputMethodService子类中重写onKeyDown(int
keyCode, KeyEvent event)方法,然后运行到模拟器上,你在按下键盘上的方向键时,输入法就可以有效拦截你的键盘按钮事件,我在LatinIME中的onKeyDown(int keyCode, KeyEvent event)方法中的添加方向键按钮事件,通过控制键子在键盘上的x,y来控制焦点的移动;
焦点的移动:
在软件盘上画焦点,并跟随键盘方向键进行移动。
首先要做的是在适当的类中,画出焦点,实际上的焦点是通过在键子边上画边框来实现,android中可以通过重写onDraw(Canvas canvas)方法来实现;要在软键盘的输入视图上的键子上画边框,就不是在LatinIME这个InputMethodService子类中重写onDraw(Canvas canvas)方法了,而应该是在创建输入视图的类中进行重写onDraw(Canvas canvas)方法,及在LatinKeyboardView类(KeyboardView的子类)中重写onDraw(Canvas
canvas)。
在TV上的软键盘不需要再在TV上touch软键盘按钮,需要通过遥控器进行操作,因此需要在软键盘上知道目前是在哪个键子上,这需要通过焦点来实现。
LatinIME输入法改写功能代码:
添加功能:为输入法软键盘键子添加焦点(边框),并支持键盘上的方向键,在按上下左右方向键时,焦点跟着方向键移动;并支持键盘回车按钮,在按下回车键后,将软键盘对应键子内容输入到editor(编辑框);
代码修改描述:
要拦截键盘的按钮事件,需要在代码中重写onKeyDown(int keyCode, KeyEvent event)方法,参数keyCode可以是键盘上按键对应的KeyEevent中的值。要使有效输入法拦截键盘上按键事件,需要在特定类中重写onKeyDown(int keyCode, KeyEvent event)方法。一开始我重写的是LatinKeyboardView中的onKeyDown(int keyCode, KeyEvent event)方法,但在运行后,没有拦截到键盘上的方向键按钮的down事件,后经过查询相关的知识点,知道了输入法的执行入口是InputMethodService类及其子类,在其中有创建输入法软键盘的一系列回调方法,用以创建输入视图,候选区视图等。要拦截键盘的按钮事件,也需要在InputMethodService子类中重写onKeyDown(int
keyCode, KeyEvent event)方法,然后运行到模拟器上,你在按下键盘上的方向键时,输入法就可以有效拦截你的键盘按钮事件,我在LatinIME中的onKeyDown(int keyCode, KeyEvent event)方法中的添加方向键按钮事件,通过控制键子在键盘上的x,y来控制焦点的移动;
焦点的移动:
在软件盘上画焦点,并跟随键盘方向键进行移动。
首先要做的是在适当的类中,画出焦点,实际上的焦点是通过在键子边上画边框来实现,android中可以通过重写onDraw(Canvas canvas)方法来实现;要在软键盘的输入视图上的键子上画边框,就不是在LatinIME这个InputMethodService子类中重写onDraw(Canvas canvas)方法了,而应该是在创建输入视图的类中进行重写onDraw(Canvas canvas)方法,及在LatinKeyboardView类(KeyboardView的子类)中重写onDraw(Canvas
canvas)。
相关文章推荐
- Android自带的软键盘上面移动焦点
- Android软键盘上移动焦点&&Android TV定制输入法
- Android自带的软键盘上面移动焦点
- android软键盘上移动焦点
- 360浏览器文本框获得焦点后被android软键盘遮罩该怎么办
- 移动系统后起之秀渐露颓势:谷歌兄,拉Android一把(转载)
- Android开发之使一打开activity等界面Edittext获取焦点,弹出软键盘java代码实现
- android tv 焦点移动特效
- Android 点击listView的item弹出软键盘并且EditText获取焦点
- Android设置默认取消获得焦点或显示软键盘
- Android GridView 智能电视焦点移动
- android:windowSoftInputMode属性详解之解决搜索框获得焦点的时软键盘就会弹出把我底部的tab导航挤出问题
- android 自动弹出软键盘,EditText自动获取焦点
- android AlertDialog中的Edittext自动获取焦点并弹出软键盘
- Android EditText 软键盘和焦点问题
- Android EditText设置默认不弹出软键盘,点击EditText外部隐藏软键盘,EditText获取焦点时隐藏hint
- Android 设置Edittext获取焦点并弹出软键盘
- Android 8.0 EditText 焦点无法移动到其他控件
- android EditText 去掉焦点和关闭软键盘
- Android移动开发 ListView使用BaseAdapter与ListView的优化,内存优化处理(转载)