Android自定义数字键盘(支持随机数字)

前言

也是最近想写个demo玩玩,不知道写哪个方面的好,就随便写了一个自定义的键盘,比较简单,但是做了封装,支持jitpack库依赖(这也是我第一次开源自己的库,比较水的一个开源项目,仅供学习使用)。

概述

主要完成了以下功能:
1.自定义数字键盘
2.切换到随机数字键盘
3.自定义确定和删除等键(向外抛出接口,感觉设计的挺好)

下面先看下运行效果吧

这里写图片描述

使用方法

1.在项目build.gradle文件中添加jitpack,添加jitpcak就够了。

allprojects {
    repositories {
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}

2.在module 的build.gradle文件添加依赖

  compile 'com.github.Simon986793021:NumberKeyboard:v1.0'

3.在布局文件中添加布局

<com.wind.keyboard.OfoKeyboardView
        android:id="@+id/keyboard_view"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:focusable="true"
        android:paddingTop="0dp"
        android:focusableInTouchMode="true"
        android:keyBackground="@drawable/bg_keyboardview"
        android:keyPreviewOffset="0dp"
        android:keyTextColor="#000"
        android:shadowColor="#fff"
        android:shadowRadius="0.0"
        android:layout_alignParentBottom="true"
        />

4.在MainActivity调用。

 editText= (EditText) findViewById(R.id.et_numberplate);
        changebutton= (Button) findViewById(R.id.bt_change_keyboard);
        final OfoKeyboard keyboard = new OfoKeyboard(MainActivity.this);//获取到keyboard对象
        changebutton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                keyboard.attachTo(editText,true);//eiditext绑定keyboard,true表示随机数字
            }
        });
        editText.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                keyboard.attachTo(editText,false);//eiditext绑定keyboard,false表示普通数字键盘

            }
        });
        /*
        确定按钮
         */
        keyboard.setOnOkClick(new OfoKeyboard.OnOkClick() {
            @Override
            public void onOkClick() {
                Log.i(">>>>>>","点击了确定");
                Toast.makeText(MainActivity.this,editText.getText().toString(),Toast.LENGTH_SHORT).show();
            }
        });
        //隐藏键盘按钮
        keyboard.setOnCancelClick(new OfoKeyboard.OnCancelClcik() {
            @Override
            public void onCancelClick() {
                Toast.makeText(MainActivity.this,"隐藏键盘",Toast.LENGTH_SHORT).show();
            }
        });

只需要这些简单的代码就能够实现一个自己定义的键盘了。

实现过程

1.新建一个keyboard布局

在看这个代码之前需要了解keyboard的属性:
不清楚属性,怎么画页面,不懂的请移步这篇博客

Android键盘属性

在 res 新建一个xml文件,然后在xml新建一个keyboard.xml

里面代码如下

<?xml version="1.0" encoding="utf-8"?>
<Keyboard
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:keyHeight="9%p"
    android:keyWidth="25%p"
    android:horizontalGap="0dp">
    <Row>
        <Key
            android:codes="49"
            android:keyLabel="1"/>
        <Key
            android:codes="50"
            android:keyLabel="2"/>
        <Key
            android:codes="51"
            android:keyLabel="3"/>
        <Key
            android:codes="-5"
            android:keyHeight="18%p"
            android:keyEdgeFlags="right"
            android:isRepeatable
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AnjoyZhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值