可以自己做键盘的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不仅可以提升企业的品牌形象,还可以吸引更多的消费者,并提高销售额。那么,自建电商平台和app的原理是什么呢?自建电商平台的
2023-06-05
自媒体app制作
自媒体APP,是指由个人或组织运营、通过手机APP平台提供内容,并透过社交网络进行传播、推广的一种媒体形式。随着互联网的普及和移动设备的普及,自媒体的发展也愈加迅速。自媒体APP的制作理念源自于智能手机在人们生活中的普及度与使用频率。今天我们将从制作原理和
2023-06-05
自己开发的app服务器怎么办
如果你想要开发自己的app服务器,首先你需要了解什么是app服务器。简单来说,app服务器是一种提供服务接口和数据存储的服务器,可以为应用提供用户认证、数据存储和处理等功能。下面我们来详细介绍一下自己开发app服务器的原理和步骤:1. 确定开发的语言和框架
2023-06-05
自己可以制作app吗
制作APP最基本的前提是具备一定的编程技能,但即便没有编程背景,也可以通过一些平台来实现快速创建和发布自己的APP。下面我将介绍几种制作APP的途径和具体方式。1. 使用APP制作平台目前市面上存在一些无需编程即可制作APP的平台,比如国内的美篇、易企秀,
2023-06-05
自己制作交友app
随着互联网的发展和人们的生活方式的改变,交友已经成为了一项热门的社交活动。许多人开始使用交友应用程序来寻找新朋友。本文将介绍如何制作一个交友应用程序。1.确定功能与设计在开发应用程序之前,您需要了解交友应用程序应具备哪些功能和设计。这其中包括:- 注册和登
2023-06-05
自己制作app的安卓app
在今天的移动设备市场上,越来越多的人开始自己创建应用程序,这也使得移动应用程序变得越来越普及。对于自己制作安卓应用程序的人来说,他们经常会问,要自己制作安卓应用程序,究竟需要哪些工具和技能呢?本文将介绍详细的安卓应用程序开发原理或过程。首先,作为一个安卓应
2023-06-05
网络传媒公司是自己开发app么
网络传媒公司是一种依托互联网技术,通过网络传输和传播信息的企业。对于这样的企业来说,拥有一个自己的app无疑是一个非常好的选择,因为可以让用户更加便利地获取信息,提高品牌曝光率和用户黏性。那么,网络传媒公司是怎样开发自己的app的呢?首先,开发一个app需
2023-05-31
外包开发app自己运维招人
随着互联网的普及和移动终端设备的普及,越来越多的企业和个人需要开发自己的移动应用程序,以满足用户的需求。然而,对于大多数创业公司和小型企业来说,拥有一支专业的移动应用程序开发团队往往是不可行的,那么借助外包公司来解决这一难题就成为了很多企业的选择。招人开发
2023-05-31
老太太自己开发app
在现代化社会中,移动设备和智能手机成为了人们生活和工作中不可或缺的一部分。很多人为了能够在这个市场上站稳脚跟,决定自己开发一款手机应用程序。即使是一位老太太也可以通过各种方法和工具来实现自己开发一款手机应用程序的目标。首先,老太太需要选择开发应用程序的平台
2023-05-30
开发一套自助洗车app多少钱
自助洗车app的开发涉及到多个方面,包括前端页面设计、后端程序代码编写、数据库的建立与管理、支付系统的设置以及安全性等等。下面我会来详细介绍一下自助洗车app的开发原理以及所需要的资金投入。一、自助洗车app的开发原理1. 前端页面设计自助洗车app的前端
2023-05-30
java自学app开发
Java是一种跨平台的编程语言,在移动应用开发方面也有很高的应用价值。在这篇文章中,我将会介绍以下内容:Java应用程序开发原理,Java开发Android应用程序的基本知识,以及自学Java开发Android应用程序的方法。一、Java应用程序开发原理J
2023-05-30
app如何自己开发
移动应用程序已成为现代数字生活中的重要组成部分,成为了我们日常生活的一部分。这里将为您详细介绍APP自己开发的原理。开发APP的主要步骤包括:1.确定目标和需求:您需要明确您的目标和需求。开始之前,您应该了解您的应用程序需要做什么,对哪些群体有用,针对这些
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1