可以自己做键盘的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开发原理。一
2023-06-05
自建车库app
在现代社会,汽车已经成为人们生活中不可或缺的一部分。为了更好地管理和存储自己的车辆,许多人选择在家中建立车库。但是在忙碌的生活中,人们常常会忘记自己丢在哪个车位上。因此,自建车库app应运而生。本文将介绍自建车库app的原理和详细内容。自建车库app的原理
2023-06-05
自己做电影用什么app
在如今的数字时代,人们越来越喜欢制作自己的视频,并通过社交媒体分享给朋友和家人。如果你对电影制作感兴趣,无论是短片、纪录片、Vlog还是其他类型的视频,现在有很多可以使用的应用程序来创建优质的电影。在本文中,我将介绍一些最流行的电影应用程序,以及它们的原理
2023-06-05
自己开发app成功的案例
自己开发APP成功的案例可以说有很多,不过在这里我想分享我自己的经历。我曾经开发了一款名为“Foodie”的美食APP,主要是帮助人们找到附近的美食,并分享自己的口味和评价。首先,我先确定了这款APP的目标用户和市场需求。在市场调研的过程中,我发现现今人们
2023-06-05
自己制作直播app需要什么软件
在这个互联网时代,直播已经成为了一种普及的娱乐方式,现在越来越多的人想要自己制作直播app来实现自我表达和展示。那么,自己制作直播app需要什么软件呢?下面让我来为您详细介绍。首先,自己制作直播app需要掌握的技术知识不可避免地涉及到移动应用开发的相关知识
2023-06-05
怎么制作自己网站的app
制作自己网站的app,有两种常见的方法,分别是Web App和Native App。1. Web AppWeb App是基于Web技术的网页应用,它不需要通过应用商店进行下载,而是通过浏览器进行访问。Web App可以在不同的平台和设备上运行,不需要对不同
2023-06-05
拖动式布局自己设计制作app
拖动式布局是一种简单直观的布局方式,可以让用户通过鼠标或手指拖动页面中的元素来实现页面的布局。这种布局方式在移动端应用程序的设计中广泛使用,因为它可以大大减少开发人员的工作量,提高开发效率。拖动式布局的原理是将页面中的元素转换为可拖动的控件,当用户拖动控件
2023-05-31
手机app开发自学
手机APP开发是一门非常有前途的技能,在手机应用日趋普及的今天,掌握手机APP开发将为你的职业生涯带来更加广阔的发展前景。如果你想成为一名手机APP开发者,那么以下是一些原理和详细介绍。1.了解移动开发平台移动开发平台是绝大多数手机APP开发者所使用的工具
2023-05-31
胖妹自己做拉丝热狗棒app
对于爱吃热狗棒的朋友来说,自己制作热狗棒不仅更加卫生、健康,还可以根据自己的口味随意调整。随着智能手机的普及和应用程序的增加,制作热狗棒的app也越来越多。本文将介绍一款胖妹自己做拉丝热狗棒app的原理及详细介绍。一、原理胖妹自己做拉丝热狗棒app的原理是
2023-05-30
如何快速制作属于自己的app
制作属于自己的app听起来很难,但是事实上,只要你掌握了一些基础知识,就可以很快地制作出一款属于自己的app。下面就详细介绍如何快速制作属于自己的app。第一步:明确你要制作的app种类和功能在开始制作属于自己的app之前,首先要明确你要制作的app种类和
2023-05-30
定制app自建团队还是外包好
在现代社会,移动应用程序已经成为人们生活、工作和娱乐中不可或缺的一部分。因此,有很多企业或个人都想要开发自己的移动应用程序。当面对 app 开发时,操作系统、界面设计、功能需求、编程语言等都是值得考虑的问题。在这样的背景下,企业或个人应该选择定制 app
2023-05-30
app开发自学太难
应用程序开发是当今IT行业中最热门的领域之一,许多人都希望能够在此领域内发挥自己的才能。然而,在现阶段,自学开发手机应用程序并不是一个简单的任务,因为它牵涉到许多不同的技能和概念。以下是这一过程中需要面对的挑战。首先,应用程序开发依赖于具备深厚的编程知识。
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1