android KeyboardView使用
来源:互联网 发布:nginx 默认根目录有 编辑:程序博客网 时间:2024/05/17 20:29
android自定义键盘
1、layout布局
<android.inputmethodservice.KeyboardView
android:id="@+id/keyboard_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@drawable/keypad_bg_qwer"
android:focusable="true"
android:focusableInTouchMode="true"
android:keyBackground="@drawable/btn_keyboard_key"
android:keyTextColor="@color/black"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="0"
android:visibility="gone" />
2、获得KeyboardView对象
Keyboard key= new Keyboard(ctx, R.xml.keyboard_qwerty);//获得自定义布局
keyboardView = (KeyboardView) view.findViewById(R.id.keyboard_view);
keyboardView.setKeyboard(key); //设置布局
keyboardView.setEnabled(true); //使能
keyboardView.setPreviewEnabled(false); //禁止弹出
keyboardView.setOnKeyboardActionListener(listener);//监听
private OnKeyboardActionListener listener = new OnKeyboardActionListener() {
@Override
public void onKey(int primaryCode, int[] keyCodes) {
//按钮的操作
}
}
3、自定义布局
<?xml version="1.0" encoding="UTF-8"?>
<Keyboard android:keyWidth="8%p" android:keyHeight="40.0dip"
android:horizontalGap="0.0px" android:verticalGap="0.0px"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row android:keyWidth="8.25%p">
<Key android:codes="33" android:keyLabel="!" android:keyEdgeFlags="left"/>
<Key android:codes="64" android:keyLabel="\@" />
<Key android:codes="35" android:keyLabel="#" />
<Key android:codes="36" android:keyLabel="$" />
<Key android:codes="37" android:keyLabel="%" />
<Key android:codes="94" android:keyLabel="^" />
<Key android:codes="38" android:keyLabel="&" />
<Key android:codes="42" android:keyLabel="*" />
<Key android:codes="40" android:keyLabel="(" />
<Key android:codes="41" android:keyLabel=")" />
<Key android:codes="45" android:keyLabel="-" />
<Key android:codes="43" android:keyLabel="+" />
</Row>
<Row android:keyWidth="8.25%p">
<Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/>
<Key android:codes="50" android:keyLabel="2" />
<Key android:codes="51" android:keyLabel="3" />
<Key android:codes="52" android:keyLabel="4" />
<Key android:codes="53" android:keyLabel="5" />
<Key android:codes="54" android:keyLabel="6" />
<Key android:codes="55" android:keyLabel="7" />
<Key android:codes="56" android:keyLabel="8" />
<Key android:codes="57" android:keyLabel="9" />
<Key android:codes="48" android:keyLabel="0" />
<Key android:codes="-5"android:keyWidth="16.5%p" android:keyEdgeFlags="right" android:isRepeatable="true"
android:keyIcon="@drawable/sym_keyboard_delete" />
</Row>
<Row android:keyWidth="8.25%p">
<Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"/>
<Key android:codes="119" android:keyLabel="w" />
<Key android:codes="101" android:keyLabel="e" />
<Key android:codes="114" android:keyLabel="r" />
<Key android:codes="116" android:keyLabel="t" />
<Key android:codes="121" android:keyLabel="y" />
<Key android:codes="117" android:keyLabel="u" />
<Key android:codes="105" android:keyLabel="i" />
<Key android:codes="111" android:keyLabel="o" />
<Key android:codes="112" android:keyLabel="p" />
<Key android:codes="123" android:keyLabel="{" />
<Key android:codes="125" android:keyLabel="}" android:keyEdgeFlags="right"/>
</Row>
<Row android:keyWidth="7.065%p">
<Key android:codes="-1" android:keyWidth="14.142%p"
android:keyEdgeFlags="left" android:isModifier="true"
android:isSticky="true" android:keyIcon="@drawable/sym_keyboard_shift" />
<Key android:codes="97" android:keyLabel="a" />
<Key android:codes="115" android:keyLabel="s" />
<Key android:codes="100" android:keyLabel="d" />
<Key android:codes="102" android:keyLabel="f" />
<Key android:codes="103" android:keyLabel="g" />
<Key android:codes="104" android:keyLabel="h" />
<Key android:codes="106" android:keyLabel="j" />
<Key android:codes="107" android:keyLabel="k" />
<Key android:codes="108" android:keyLabel="l" />
<Key android:codes="58" android:keyLabel=":" />
<Key android:codes="65500" android:keyWidth="14.000%p" android:keyEdgeFlags="right" android:keyLabel="清除" />
</Row>
<Row android:keyWidth="7.615%p">
<Key android:codes="47" android:keyLabel="/" android:keyEdgeFlags="left"/>
<Key android:codes="92" android:keyLabel="\\" />
<Key android:codes="122" android:keyLabel="z" />
<Key android:codes="120" android:keyLabel="x" />
<Key android:codes="99" android:keyLabel="c" />
<Key android:codes="118" android:keyLabel="v" />
<Key android:codes="98" android:keyLabel="b" />
<Key android:codes="110" android:keyLabel="n" />
<Key android:codes="109" android:keyLabel="m" />
<Key android:codes="46" android:keyLabel="." />
<Key android:codes="95" android:keyLabel="_" />
<Key android:codes="-3" android:keyWidth="15.231%p" android:keyEdgeFlags="right" android:keyLabel="完成" />
</Row>
</Keyboard>
4、触发键盘
EditText ed_ip = (EditText) view.findViewById(R.id.ed_ip);
ed_ip.setInputType(InputType.TYPE_NULL);
ed_ip.setOnFocusChangeListener(focus_listener);
private OnFocusChangeListener focus_listener = new OnFocusChangeListener()
{
@Override
public void onFocusChange(View v, boolean hasFocus)
{
if (hasFocus)
{
setKeyboard(v);
}
}
};
private void setKeyboard(View v)
{
EditText edit1=(EditText)v;
int inputback = edit1.getInputType();
edit1.setInputType(InputType.TYPE_NULL);
new KeyboardUtil(null,view, context, edit1).showKeyboard(); //此处调用自定义的键盘
edit1.setInputType(inputback);
if(edit1.length()>0)
{
edit1.setSelection(edit1.length()); //光标位置
}
1、layout布局
<android.inputmethodservice.KeyboardView
android:id="@+id/keyboard_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@drawable/keypad_bg_qwer"
android:focusable="true"
android:focusableInTouchMode="true"
android:keyBackground="@drawable/btn_keyboard_key"
android:keyTextColor="@color/black"
android:shadowDx="0"
android:shadowDy="0"
android:shadowRadius="0"
android:visibility="gone" />
2、获得KeyboardView对象
Keyboard key= new Keyboard(ctx, R.xml.keyboard_qwerty);//获得自定义布局
keyboardView = (KeyboardView) view.findViewById(R.id.keyboard_view);
keyboardView.setKeyboard(key); //设置布局
keyboardView.setEnabled(true); //使能
keyboardView.setPreviewEnabled(false); //禁止弹出
keyboardView.setOnKeyboardActionListener(listener);//监听
private OnKeyboardActionListener listener = new OnKeyboardActionListener() {
@Override
public void onKey(int primaryCode, int[] keyCodes) {
//按钮的操作
}
}
3、自定义布局
<?xml version="1.0" encoding="UTF-8"?>
<Keyboard android:keyWidth="8%p" android:keyHeight="40.0dip"
android:horizontalGap="0.0px" android:verticalGap="0.0px"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row android:keyWidth="8.25%p">
<Key android:codes="33" android:keyLabel="!" android:keyEdgeFlags="left"/>
<Key android:codes="64" android:keyLabel="\@" />
<Key android:codes="35" android:keyLabel="#" />
<Key android:codes="36" android:keyLabel="$" />
<Key android:codes="37" android:keyLabel="%" />
<Key android:codes="94" android:keyLabel="^" />
<Key android:codes="38" android:keyLabel="&" />
<Key android:codes="42" android:keyLabel="*" />
<Key android:codes="40" android:keyLabel="(" />
<Key android:codes="41" android:keyLabel=")" />
<Key android:codes="45" android:keyLabel="-" />
<Key android:codes="43" android:keyLabel="+" />
</Row>
<Row android:keyWidth="8.25%p">
<Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/>
<Key android:codes="50" android:keyLabel="2" />
<Key android:codes="51" android:keyLabel="3" />
<Key android:codes="52" android:keyLabel="4" />
<Key android:codes="53" android:keyLabel="5" />
<Key android:codes="54" android:keyLabel="6" />
<Key android:codes="55" android:keyLabel="7" />
<Key android:codes="56" android:keyLabel="8" />
<Key android:codes="57" android:keyLabel="9" />
<Key android:codes="48" android:keyLabel="0" />
<Key android:codes="-5"android:keyWidth="16.5%p" android:keyEdgeFlags="right" android:isRepeatable="true"
android:keyIcon="@drawable/sym_keyboard_delete" />
</Row>
<Row android:keyWidth="8.25%p">
<Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"/>
<Key android:codes="119" android:keyLabel="w" />
<Key android:codes="101" android:keyLabel="e" />
<Key android:codes="114" android:keyLabel="r" />
<Key android:codes="116" android:keyLabel="t" />
<Key android:codes="121" android:keyLabel="y" />
<Key android:codes="117" android:keyLabel="u" />
<Key android:codes="105" android:keyLabel="i" />
<Key android:codes="111" android:keyLabel="o" />
<Key android:codes="112" android:keyLabel="p" />
<Key android:codes="123" android:keyLabel="{" />
<Key android:codes="125" android:keyLabel="}" android:keyEdgeFlags="right"/>
</Row>
<Row android:keyWidth="7.065%p">
<Key android:codes="-1" android:keyWidth="14.142%p"
android:keyEdgeFlags="left" android:isModifier="true"
android:isSticky="true" android:keyIcon="@drawable/sym_keyboard_shift" />
<Key android:codes="97" android:keyLabel="a" />
<Key android:codes="115" android:keyLabel="s" />
<Key android:codes="100" android:keyLabel="d" />
<Key android:codes="102" android:keyLabel="f" />
<Key android:codes="103" android:keyLabel="g" />
<Key android:codes="104" android:keyLabel="h" />
<Key android:codes="106" android:keyLabel="j" />
<Key android:codes="107" android:keyLabel="k" />
<Key android:codes="108" android:keyLabel="l" />
<Key android:codes="58" android:keyLabel=":" />
<Key android:codes="65500" android:keyWidth="14.000%p" android:keyEdgeFlags="right" android:keyLabel="清除" />
</Row>
<Row android:keyWidth="7.615%p">
<Key android:codes="47" android:keyLabel="/" android:keyEdgeFlags="left"/>
<Key android:codes="92" android:keyLabel="\\" />
<Key android:codes="122" android:keyLabel="z" />
<Key android:codes="120" android:keyLabel="x" />
<Key android:codes="99" android:keyLabel="c" />
<Key android:codes="118" android:keyLabel="v" />
<Key android:codes="98" android:keyLabel="b" />
<Key android:codes="110" android:keyLabel="n" />
<Key android:codes="109" android:keyLabel="m" />
<Key android:codes="46" android:keyLabel="." />
<Key android:codes="95" android:keyLabel="_" />
<Key android:codes="-3" android:keyWidth="15.231%p" android:keyEdgeFlags="right" android:keyLabel="完成" />
</Row>
</Keyboard>
4、触发键盘
EditText ed_ip = (EditText) view.findViewById(R.id.ed_ip);
ed_ip.setInputType(InputType.TYPE_NULL);
ed_ip.setOnFocusChangeListener(focus_listener);
private OnFocusChangeListener focus_listener = new OnFocusChangeListener()
{
@Override
public void onFocusChange(View v, boolean hasFocus)
{
if (hasFocus)
{
setKeyboard(v);
}
}
};
private void setKeyboard(View v)
{
EditText edit1=(EditText)v;
int inputback = edit1.getInputType();
edit1.setInputType(InputType.TYPE_NULL);
new KeyboardUtil(null,view, context, edit1).showKeyboard(); //此处调用自定义的键盘
edit1.setInputType(inputback);
if(edit1.length()>0)
{
edit1.setSelection(edit1.length()); //光标位置
}
}
5、 KeyboardUtil
public class KeyboardUtil {
public KeyboardUtil(Activity act,View view, Context ctx, EditText edit) {
@Override
public void onKey(int primaryCode, int[] keyCodes) {
//处理自己的键盘事件
}
}
}
0 0
- android KeyboardView使用
- Android自定义软键盘KeyboardView 使用实例
- Android KeyboardView属性详解
- Android自定义View—KeyboardView
- Android keyboardView字体样式修改
- 键盘控件KeyboardView的使用
- 键盘控件KeyboardView的使用
- android.inputmethodservice.KeyboardView 自定义键盘 字体大小设置
- 【学习Android】KeyboardView.class源码注解
- android 自定义键盘 KeyboardView的key 文字颜色发虚模糊
- android 自定义键盘 KeyboardView的key 文字颜色发虚模糊
- 使用KeyboardView导致EditText光标不显示的问题
- KeyboardView.java
- android输入法02:openwnn源码解析02—Keyboard和KeyboardView
- android输入法02:openwnn源码解析02—Keyboard和KeyboardView
- KeyboardView 自定义安全键盘
- KeyboardView 修改按键提示框
- popuweindow 里面嵌套 keyboardview 报错
- 埃特金法
- java.lang.IllegalMonitorStateException错误的解决
- ARM处理器体系结构知识—[1]寻址方式
- CAN总线 远程帧理解和应用
- 关于mybatis中typeHandler的两个案例
- android KeyboardView使用
- 高速通用密码卡之西电捷通综合性测试分析
- ORA-24757 错误处理
- [00304]二八十六进制整数
- Android 静音模式、振动模式、普通模式判断
- springboot缓存篇(二)-redis 做缓存
- HTML5开发(一)
- 洛谷 P1098 字符串的展开
- JavaScript学习总结(13)——JavaScript常用正则表达式