首先你需要一个keyboard.xml文件,该文件将放置在res/xml文件夹(如果文件夹不存在,则创建该文件夹)。<?xml  version="1.0" encoding="utf-8"?>

android:keyWidth="15%p"

android:keyHeight="15%p" >

*注意,您必须创建backspace可绘制,并将其放置在Res/draable-ldpi文件夹中,其大小非常小(比如18x18像素)。

然后,在您希望使用它的XML文件中(您的TextView在其中),您应该添加以下代码:

...>

.....

android:id="@+id/keyboardview"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:focusable="true"

android:focusableInTouchMode="true"

android:visibility="gone"

/>

......

*注意,您将放置android.inputmethodservice.KeyboardView在,必须是RelativeLayout以便能够将alignParentBottom="true"(通常键盘在屏幕底部显示)

然后,您需要在onCreate的功能Activity处理TextView您想要将键盘附加到// Create the Keyboard

mKeyboard= new Keyboard(this,R.xml.keyboard);

// Lookup the KeyboardView

mKeyboardView= (KeyboardView)findViewById(R.id.keyboardview);

// Attach the keyboard to the view

mKeyboardView.setKeyboard( mKeyboard );

// Do not show the preview balloons

//mKeyboardView.setPreviewEnabled(false);

// Install the key handler

mKeyboardView.setOnKeyboardActionListener(mOnKeyboardActionListener);

*注意mKeyboard和mKeyboardView是您必须创建的私有类变量。

然后,您需要以下函数来打开键盘(您必须通过onClickXML属性)public void openKeyboard(View v)

{

mKeyboardView.setVisibility(View.VISIBLE);

mKeyboardView.setEnabled(true);

if( v!=null)((InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(v.getWindowToken(), 0);

}

最后你需要OnKeyboardActionListener它将处理你的事件private OnKeyboardActionListener mOnKeyboardActionListener = new OnKeyboardActionListener() {

@Override public void onKey(int primaryCode, int[] keyCodes)

{

//Here check the primaryCode to see which key is pressed

//based on the android:codes property

if(primaryCode==1)

{

Log.i("Key","You just pressed 1 button");

}

}

@Override public void onPress(int arg0) {

}

@Override public void onRelease(int primaryCode) {

}

@Override public void onText(CharSequence text) {

}

@Override public void swipeDown() {

}

@Override public void swipeLeft() {

}

@Override public void swipeRight() {

}

@Override public void swipeUp() {

}};

希望这有帮助!

发现的大部分代码这里

android开发自定义键盘,如何制作Android自定义键盘?相关推荐

  1. android动画view上移,在Android开发中使用View制作一个引导动画

    在Android开发中使用View制作一个引导动画 发布时间:2020-11-20 16:46:16 来源:亿速云 阅读:98 作者:Leah 这篇文章将为大家详细讲解有关在Android开发中使用V ...

  2. android打地鼠设计报告,android开发中利用handler制作一个打地鼠小游戏

    android开发中利用handler制作一个打地鼠小游戏 发布时间:2020-11-25 15:21:11 来源:亿速云 阅读:136 作者:Leah 这期内容当中小编将会给大家带来有关androi ...

  3. Android开发经验谈-很少有人会告诉你的Android开发基本常识,经验谈android

    转载:http://www.android100.org/html/201507/15/165084.html Android开发经验谈-很少有人会告诉你的Android开发基本常识,经验谈andro ...

  4. Android开发— 2016_最流行的Android组件、工具、框架大全(二)

    2019独角兽企业重金招聘Python工程师标准>>> 泡在网上的日子 首页 代码 话题 问答 标签 关于 登录注册 首页 › 安卓开发 › android开发 Android开发- ...

  5. Android开发-AMD平台如何使用Android studio自带模拟器

    Android开发-AMD平台如何使用Android studio自带模拟器 前言 AMD开启虚拟化VT win10专业版开启 win10家庭版开启 创建Android模拟器 前言 现在Android ...

  6. Android开发入门与实战之Android应用安装卸载

    当一个Android开发者完整的开发完毕一个程序应用软件结束后要进行软件测试,这就是软件测试员的来历,那么在这之前,要进行Android开发应用的安装与卸载. Android开发入门与实战之Andro ...

  7. Android 开发艺术探索——第十章 Android的消息机制

    Android 开发艺术探索--第十章 Android的消息机制读书笔记 Handler并不是专门用于更新UI的,只是常被用来更新UI 概述 Android的消息机制主要值得就是Handler的运行机 ...

  8. android开发UI界面布局教学,android UI学习 -- 设置界面的布局(包括style的使用,selector的使用,Checkbox自定义样式,菜单项的样式)...

    最终实现效果如下图: 具体来说就是实现了checkbox自定义选中和为选择样式,菜单项根据不同位置设置不同背景. 先上整体布局文件代码: xmlns:tools="http://schema ...

  9. Android开发笔记(九十五)自定义Drawable

    Drawable Bitmap是Android对图像的定义描述,而Drawable则是对图像的展现描述,在View视图中显示图像都是通过Drawable来实现的.其中有关Bitmap的介绍参见< ...

  10. 阿里P7面试官告诉你:3-5年以上的Android开发如何深入进阶?Android中高级开发必须掌握哪些?

    前言 Android确实不是当年盛况,已经不再像前几年前那么火爆.一个新行业如果经历过盛极一时,那么必然有这样的一条曲线,像我们学的正弦曲线先急速上升,然后到达顶点,然后再下降,最后再趋近一个平稳的值 ...

最新文章

  1. python机器学习包
  2. nginx 集群部署_如何备份和还原您的Kubernetes集群资源和持久卷?
  3. 十分钟计算机说课稿,足球十分钟说课稿范文(精选3篇)
  4. leetcode - 136. 只出现一次的数字
  5. TC2.0中怎样调用汇编程序
  6. 数据3分钟丨华为正式捐赠欧拉操作系统;腾讯云数据库TDSQL将发布免费版;MatrixDB 4.3发布...
  7. 基于android的电影售票APP,基于Android的在线电影售票系统.doc
  8. 信息系统项目管理师考试备考经验和心得(50天一次性通过)
  9. 最新小学计算机课五年级上册目录,部编版小学语文教材2020最新调整!涉及20多篇课文!(附2020年教育部中小学生阅读指导目录)...
  10. 如何在Revit中引入WPF界面(通俗易懂)
  11. 数据离散化之chimerge算法的实现(python版)(以莺尾花数据为例)
  12. cs224u Overview of the Stanford Sentiment Treebank
  13. 电脑双屏断开后文件无法显示
  14. cad指北针lisp_建筑施工图常用符号及图例
  15. Fiddler抓取数据并分析(完整的配置教程) 1
  16. currency translation BW 货币转换
  17. 【会议记录】2022北京网络安全大会-杨珉-软件供应链安全治理之漏洞补丁:现状及应对方案
  18. 无人驾驶感知篇之目标跟踪(十四)
  19. java uml建模_Java开源UML建模
  20. vue-cli3.0中Tslint配置

热门文章

  1. [Bzoj3640]JC的小苹果
  2. apache安装及配置
  3. Apache安装部署
  4. 网站设计系列:网站易用性
  5. Linux中zsh插件,Zsh 常用插件
  6. android源码下载(下)
  7. 百度地图--证书认证问题
  8. python-docx 合并单元格
  9. plotly系列| 使用plotly在地图上绘制散点图和密度图
  10. Xcode info.plist各种key