可以自己做键盘的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软件,你不需要太多的编程知识,只需跟着这些步骤操作即可。1. 确定你想要做的app软件类型和功能在开始做
2023-06-05
自己做手机铃声app
做一个手机铃声app,主要的技术点包括铃声库的搭建和铃声下载与设置功能的实现。首先,搭建一个铃声库需要收集大量的铃声资源。可以通过采集网络上的铃声资源或者自己录制制作铃声来增加自己铃声库的数量和质量。其次,铃声下载与设置功能需要用到一些技术,比如:1.前端
2023-06-05
自己做mv的app
做一个MV的app有点类似于做一个影视类app,但是还要涉及到视频剪辑和音频混合等复杂的操作。这里我们将MV分为两部分:视觉和声音,然后分别介绍如何实现。1. 视觉部分视觉部分主要是指视频的剪辑和特效等操作。我们可以使用第三方的视频编辑库或者自己编写视频编
2023-06-05
自己开发app怎么做
开发一个 APP 需要经过多个阶段,其中包括需求分析、UI 设计、编码实现、测试、上线发布等,下面将会详细介绍这些阶段。1.需求分析阶段在开发任何一个软件之前,我们需要先明确自己的需求,包括:目标用户:确定你的 APP 主要面向哪些人群,如何能够吸引他们使
2023-06-05
自己学做app软件要多久
学习如何做 app 软件需要掌握很多不同的技能和概念,包括 UI/UX 设计、编程语言、开发工具和流程、测试等。因此,学会如何制作一个完整的 app 可以需要几个月或甚至一年以上的时间,具体取决于您的经验水平、学习速度和教育程度。以下是一个示例学习计划,它
2023-06-05
自己如何制作直播app软件
要制作一款直播App,需要掌握以下几个核心技术:1. 视频采集和编码技术视频采集可以使用手机自带的摄像头模块,或者依靠外接的USB摄像头模块。采集到的视频需要进行编码,通常使用H.264或VP8编码算法。采集和编码可以使用系统底层的视频处理库,或者自己编写
2023-06-05
自动翻页电子相册制作软件app
自动翻页电子相册制作软件app是一种照片展示工具,用户可以将照片通过该软件制作成电子相册,方便浏览和分享。这类软件的原理是通过自动翻页功能使得相册内容可以在用户不需要手动翻页的情况下,自动播放照片。一般而言,自动翻页电子相册制作软件app应该具有以下特点:
2023-06-05
云林自己做app
要做一个自己的app,首先需要明确一下app的种类。大致可以分成三类:原生app、混合app和Web app。原生app是指使用原生开发语言(如iOS的Objective-C或Swift,Android的Java或Kotlin)开发的应用程序。混合app是
2023-06-05
可以自己做杂志排版的app推荐
随着移动设备的普及,越来越多的人会选择在手机或平板电脑上制作杂志。在这里,我将向您推荐一些自己做杂志排版的app,及其原理和特点。1. FlipHTML5 FlipHTML5是一个功能强大的在线杂志制作工具,可用于创建在网站上阅读的杂志,以及可以导出为HT
2023-05-30
可以自主做化学实验的app
化学实验是学习化学的重要一环,不仅可以帮助学生加深对于化学知识的理解,而且可以增强学生实践能力。但是,由于实验条件的限制,很多学生并不能进行化学实验。幸运的是,随着技术的不断进步,现在有一些自主做化学实验的app,让学生们更方便地进行化学实验。接下来,我们
2023-05-30
安装自己开发的app
一般情况下,我们开发的app都会发布到应用商店,供用户下载并安装使用。但有时候,我们需要将应用程序安装到自己的设备上,方便测试和调试。本文将以安装iOS应用程序为例,介绍如何安装自己开发的app。iOS设备上安装自己开发的app有两种方式:使用Xcode或
2023-05-30
app软件应用开发的自频道
App是指移动应用程序,它通常运行在智能手机、平板电脑、手持设备等移动终端上,为用户提供各种各样的功能和服务。App的开发主要包括前端开发、后端开发和UI/UX设计等方面,具体内容涵盖许多技术和工具,下面我将从三个方面为您详细介绍app软件应用开发的原理和
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1