可以自己做键盘的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吗
低代码开发平台是一种为企业和开发人员提供的工具,使他们能够更快速,更高效地构建、测试和部署应用程序。这种平台使用可视化开发模型,使用户只需拖拽和配置组件,即可进行应用开发。自研低代码平台是指企业或团队自行开发低代码平台,用于快速开发应用程序、优化开发效率,
2023-06-05
自己做连环动画的app
连环动画,也叫漫画,是一种能够展现一个故事情节的图像形式。现在,越来越多的人对连环动画感兴趣,因为它能用有限的空间表达丰富的内容。如果你也想自己做连环动画的app,下面是一些详细介绍和原理供你参考。一、选择一个开发平台首先,你需要选择一个开发平台。对于初学
2023-06-05
自己做的app会被窃取数据吗
在科技日新月异的今天,移动APP已经成为人们日常生活不可或缺的一部分。然而,随着移动互联网的普及,安全问题也日益受到人们的关注。比如,是否存在被恶意攻击者利用APP窃取用户个人隐私信息的情况,这是很多人关心的问题。移动APP的数据安全性主要取决于两个方面:
2023-06-05
自己做桌面的app
随着移动互联网的兴起,手机应用程序已经成为了人们生活不可或缺的一部分,同时,桌面应用的使用也仍然非常广泛。相比于手机应用,桌面应用的功能更加强大,交互体验更加优秀,因此,在许多场合下,仍然需要桌面应用来满足用户需求。那么,如何自己做一个桌面应用程序呢?一、
2023-06-05
自己做攻略用什么app整理
随着信息化时代的不断发展,很多人都喜欢使用电子设备来整理自己的生活琐事和工作内容,因此app已经成为了大家生活中不可或缺的东西。为了方便大家在日常生活中更好的整理自己的攻略,本文将介绍一些常见的整理攻略的app工具。1. EvernoteEvernote是
2023-06-05
自己做字体app
制作字体App的原理是通过使用字体编辑软件来设计和创建自定义字体,并将其导入到应用程序中。以下是一个简单的步骤指南。步骤1-确定你的设计需求。首先,你需要了解你的用户需求,以及他们用于什么目的的字体。 如果你的应用程序主要针对图形设计师,则可能需要专业的字
2023-06-05
自己如何制作生鲜配送app
生鲜配送APP是现代的一个重要物流应用,其目标用户是那些对食品质量、时间和便利性都很有要求的人群。生鲜配送APP通常需要满足订餐下单、个性化服务、配送跟踪等功能,而其制作原理主要包含以下几个方面。1. 需求分析和功能规划APP的制作需要先进行需求分析和功能
2023-06-05
自己制作别针的app
随着人们对手工艺的热爱和追求,越来越多的人开始制作各种手工艺品,其中包括别针。别针可以用于制作各种珠宝、衣物等等,所以它的应用范围非常广泛。如果你想要自己制作别针,可以开发一个app来辅助制作。这个app的原理很简单,主要包括以下几个步骤:1.设计别针的图
2023-06-05
自己制作交友app
随着互联网的发展和人们的生活方式的改变,交友已经成为了一项热门的社交活动。许多人开始使用交友应用程序来寻找新朋友。本文将介绍如何制作一个交友应用程序。1.确定功能与设计在开发应用程序之前,您需要了解交友应用程序应具备哪些功能和设计。这其中包括:- 注册和登
2023-06-05
有没有专门做自行车的app
随着城市化进程的加速,自行车逐渐成为了城市出行的重要方式之一,那么是否有一款能够帮助自行车骑行者上手自行车保养、修理、骑行记录、骑行路线规划、社群分享以及线上购物的app呢?答案是肯定的,相关的自行车应用也早已问世并得到了广泛的好评。下面我们就来介绍一些主
2023-06-05
可以自己制作盲盒的软件app
随着盲盒文化的兴起,越来越多的人开始制作和收藏自己的盲盒。为了让更多的人可以方便地制作属于自己的盲盒,可以开发一款自己制作盲盒的软件app。首先,这款软件需要有一个简单易懂的用户界面。界面需要有相应的按钮和选项,以方便用户设置盲盒的各项参数。用户可以在软件
2023-05-30
高中学历自学开发手机app
随着智能手机的普及和应用程序的需求不断增加,开发手机应用成为越来越受欢迎的职业和兴趣爱好。开发手机应用程序可以让你实现许多有趣和有用的想法,从创建游戏到构建商业应用。在本文中,我们将详细介绍如何通过自学开发手机app。1. 学习基础编程语言如果你想自学开发
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1