可以自己做键盘的app

做一个自己的键盘 app 可以让用户根据自己的需求和喜好来定制键位和布局。在这篇文章中,我将介绍如何使用 Android Studio 来创建一个简单的键盘 app。

首先,我们需要创建一个新的 Android Studio 项目。在创建项目时,选择 ‘Empty Activity’ 模板。之后,我们需要在 gradle 文件中添加如下依赖:

```

implementation 'com.android.support:appcompat-v7:28.0.0'

implementation 'com.android.support.constraint:constraint-layout:1.1.3'

implementation 'com.android.support:support-v4:28.0.0'

```

接下来,我们需要在项目的 layout 文件夹中创建一个 keyboard.xml 文件。在这个文件中,我们可以定义键盘的布局和样式。一个基本的键盘布局可以通过以下代码进行创建:

```xml

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/keyboard_input"

android:layout_width="0dp"

android:layout_height="wrap_content"

android:layout_marginBottom="8dp"

android:inputType="text"

app:layout_constraintBottom_toTopOf="@+id/key_container"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"/>

android:id="@+id/key_container"

android:layout_width="match_parent"

android:layout_height="0dp"

android:rowCount="3"

android:columnCount="3"

android:layout_marginStart="8dp"

android:layout_marginEnd="8dp"

app:layout_constraintTop_toBottomOf="@id/keyboard_input"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintEnd_toEndOf="parent">

android:text="A"

app:layout_columnWeight="1"

app:layout_rowWeight="1"/>

android:text="B"

app:layout_columnWeight="1"

app:layout_rowWeight="1"/>

android:text="C"

app:layout_columnWeight="1"

app:layout_rowWeight="1"/>

android:text="D"

app:layout_columnWeight="1"

app:layout_rowWeight="1"/>

android:text="E"

app:layout_columnWeight="1"

app:layout_rowWeight="1"/>

android:text="F"

app:layout_columnWeight="1"

app:layout_rowWeight="1"/>

android:text="G"

app:layout_columnWeight="1"

app:layout_rowWeight="1"/>

android:text="H"

app:layout_columnWeight="1"

app:layout_rowWeight="1"/>

android:text="I"

app:layout_columnWeight="1"

app:layout_rowWeight="1"/>

```

在上述布局中,我们使用了 ConstraintLayout 和 GridLayout。在键盘布局中,我们使用 GridLayout 来放置键位,然后使用 ConstraintLayout 来放置整个键盘。此外,我们在键盘上添加了一个 EditText 视图,用于输入文本。

现在,我们需要为 each 个 button 添加点击事件。我们可以在键盘的 Activity 类中添加 click 监听器,然后在监听器中更新 EditText 中的文本。我将为选择的键位添加一些逻辑,以避免选择不合适的键。

```java

import android.os.Bundle;

import android.support.v7.app.AppCompatActivity;

import android.view.View;

import android.widget.Button;

import android.widget.EditText;

public class KeyboardActivity extends AppCompatActivity implements View.OnClickListener {

private EditText mInputEditText;

private String mLastInput = "";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_keyboard);

mInputEditText = findViewById(R.id.keyboard_input);

findViewById(R.id.button_a).setOnClickListener(this););

findViewById(R.id.button_b).setOnClickListener(this););

findViewById(R.id.button_c).setOnClickListener(this););

findViewById(R.id.button_d).setOnClickListener(this););

findViewById(R.id.button_e).setOnClickListener(this););

findViewById(R.id.button_f).setOnClickListener(this););

findViewById(R.id.button_g).setOnClickListener(this););

findViewById(R.id.button_h).setOnClickListener(this););

findViewById(R.id.button_i).setOnClickListener(this););

}

// 实现点击事件

@Override

public void onClick(View v) {

Button button = (Button) v;

String input = button.getText().toString();

if (isInputValid(mLastInput, input)) {

mInputEditText.append(input);

mLastInput = input;

}

}

// 检查输入是否有效

private boolean isInputValid(String lastInput, String input) {

if (lastInput.equals("A") && input.equals("B")) {

return false;

}

if (lastInput.equals("B") && input.equals("A")) {

return false;

}

return true;

}

}

```

现在,我们的键盘 app 已经可以使用了。用户可以通过点击键位来输入文本,键位点击后会检查它是否与上一个输入的键位有冲突,如果没有冲突,文本将被添加到 EditText 中。如果您想加入更多的功能,例如自定义键位和布局,您可以通过修改 keyboard.xml 文件和键盘的 Activity 类来实现。

这是一个简单的示例,可以帮助您了解如何创建一个键盘 app。如果您想深入学习 Android 开发,您可以参考 Android Studio 文档和教程。


相关知识:
自己开发app售卖需要什么
开发一款应用程序(App)并将其销售是一项需要考虑多个方面的复杂任务,需要对应用程序的功能、用户界面、技术实现、法律法规和销售市场有充分的了解。下面将详细介绍自己开发App售卖需要考虑的方面:一、需求分析在开发App前,首先需要明确自己的目标用户是谁,他们
2023-06-05
自贡直销app开发技术
自贡直销业务是指直接将产品或服务销售给最终用户的业务模式,主要通过个人销售代表或团队来进行推广和销售,从而实现销售提成和奖励。为了更好地扩展销售渠道和提高销售业绩,自贡许多直销企业已经开始投资开发直销app。直销app开发的核心是建立一个全方位的移动端销售
2023-06-05
自动扣费app制作方法
自动扣费app通常是指各种定期扣费、自动续费、预授权扣费等功能的应用程序,主要用于娱乐、购物、出行等领域。这类应用程序的实现,需要结合多种技术手段和实践经验,并充分考虑安全性、可靠性、用户友好性等多个方面的问题。下面,我们将从技术原理、开发流程和重要实现细
2023-06-05
阅读app 自做书源教程
阅读app是一款非常优秀的阅读工具,拥有众多用户和广泛的应用场景。它最大的优点之一就是可以自定义书源。下面将详细介绍自做书源的原理以及具体步骤。一、什么是书源书源即为获取阅读资源的渠道,通俗点说,就是获取小说内容的来源。可以理解为一个网址或者是API地址。
2023-06-05
在自己开发的app里调用微信
想要在自己开发的app里调用微信,需要使用微信开放平台提供的SDK(软件开发工具包)。以下是详细介绍:1. 注册微信开放平台账号在微信开放平台官网上,需要注册一个账号,完成开放平台的申请。然后创建一个应用程序,微信会分配给你一个唯一的AppID和AppSe
2023-06-05
有没有自己制作题的app
自己制作题的App,可以让用户自由设计、储存和分享自己的试题,同时增强用户的学习兴趣。下面将介绍一些制作题目App的原理和详细介绍。制作题目App一般分为两个方面:1. 题目编写和储存的后台设计2. 前端设计首先,后台设计是制作题目App的重中之重。后台应
2023-06-05
如何自学开发app零基础知识
如果你想学习开发app,但是完全没有任何相关的基础知识,不用担心,这并不是难题。下面我将为你分享一些零基础学习app开发的方法和技巧。1. 学习编程语言首先,你需要学习一门编程语言,因为编程语言是开发app的基础。常见的编程语言包括Java、Objecti
2023-05-30
快手辛巴自建什么app了啊
近来,快手辛巴又发布了一款自建App“睿峰智能”。这是快手辛巴继去年12月发布“智能短视频剪辑器”和今年3月发布“智能短视频拍摄助手”后发布的又一款产品,旨在进一步推进短视频产业的数字化升级。本文将对“睿峰智能”这款App的原理和详细介绍进行介绍。一、智能
2023-05-30
可以自己diy做桌面的app
在移动互联网时代,手机已经成为人们生活必备的工具之一。而桌面app也变得越来越多样化和个性化。那么,如何自己DIY做一个桌面app呢?以下是原理及详细介绍:一、 原理在手机桌面上,我们总是可以看到各种各样的应用程序。其实,每个应用程序本质上都是活动(Act
2023-05-30
定制开发app和加盟自营
随着智能化的普及,移动应用已经成为现代科技的一个不可或缺的部分,人们越来越依赖于各种各样的手机应用程序。由于市场需求量大,发展潜力大,很多公司和个人选择加盟自营或者定制开发app。一、 加盟自营:加盟自营是指企业持有品牌、技术和商业模式,并将其运用于目标市
2023-05-30
安卓开发设置app自启动
安卓系统在应用程序运行时,会对系统资源进行一定的限制,保证系统的稳定性和安全性。但有些应用程序需要在系统启动时自动运行,在后台长时间运行,例如一些服务应用,如消息推送、定位等。在这些应用中,自动启动非常重要,否则它们将无法提供正常的服务。那么如何在安卓开发
2023-05-30
ios开发app自己用需要上线么
在iOS开发中,将自己开发的APP上线是一种非常常见的需求。通常情况下,为了将APP上线,我们需要通过一些列的步骤,包括申请开发者账号、生成证书与配置文件、打包APP、提交APP等等。下面就让我们来逐步了解一下这些步骤。首先,申请开发者账号。iOS开发者需
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1