自定义实物键盘控件


title: 键盘
tags: []
notebook: 自定义控件


键盘控件(KeyboardView)

image

背景

  • 需求来源:

    恒宇键盘OEMAPP定制开发

  • 需求内容:

    可以选中键盘中的按键,支持多选和单选 ,选中后按键文本颜色发生改变

说明

1、功能只支持4.4及以上的设备

基础功能

/**
 * 获取选择的按键
 * @return
 */
List<KeyBoardBean> getSelectedKeys();

/**
 * 设置键盘模式  单选、多选
 * @param mode
 */
void setMode(KeyBoardModeEnum mode);

/**
 * 设置选中按键的文本颜色
 * @param keySelcolor
 */
void setKeySelcolor(int keySelcolor);

/**
 * 设置未选中按键的文本颜色
 * @param keycolor
 */
void setKeycolor(int keycolor); 

使用

  • 自定义属性

    自定义属性 说明
    key_mode 设置键盘模式 0:多选 , 1:单选
    key_selcolor 设置选中按键的文本颜色
    key_normal_color 设置未选中按键的文本颜色
  • 布局文件

      <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         xmlns:tools="http://schemas.android.com/tools"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         tools:context=".MainActivity">
    
         <com.tuya.smart.kakeyboard.widget.KeyboardView
             android:id="@+id/keyboard"
             android:layout_marginLeft="64dp"
             android:layout_marginRight="64dp"
             android:layout_width="match_parent"
             android:layout_height="176dp"
             android:layout_centerInParent="true"
             app:key_mode="1"
             app:key_selcolor="@color/key_selected_color"
             app:key_normal_color="@color/key_normal_color"
             />
    
      /RelativeLayout>
    
  • 代码调用

          mKeyboardView = findViewById(R.id.keyboard);
          mKeyboardView.setMode(KeyBoardModeEnum.SINGLE);//设置键盘模式
          mKeyboardView.setKeycolor(Color.BLUE); //设置未选中按键的文本颜色
          mKeyboardView.setKeySelcolor(Color.YELLOW);//设置选中按键的文本颜色
          //设置按键点击事件监听
          mKeyboardView.setKeyBoardItemClickListener(new KeboardAdapter.KeyBoardItemClickListener() {
              @Override
              public void onItemClick(KeyBoardBean bean, int pos) {
                  //获取所有选中的按键
                  List<KeyBoardBean> list = mKeyboardView.getSelectedKeys();
                  Log.i(TAG, "onItemClick: " + bean.getKey() + " , size = " + list.size());
          
              }
          });
    

最后

  • 组件demo项目已上传
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容