可以自己做键盘的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可以更好的解决这个问题,使销售人员更好的管理项目和客户。那么接下来我们就来详细介绍一下自己做销售管理app的原理。1.需求分析在做销售管理app之前,需要进行充分的需求分析。这个过程中
2023-06-05
自己做的app能赚钱吗
自己做的app赚钱的原理是通过广告收入、应用内购买、付费下载等方式实现盈利。下面将逐一介绍这些方式的运作原理。1. 广告收入广告收入是最常见的一种盈利方式。开发者可以在应用中加入广告,当用户点击广告或者与广告合作的商家进行交易时,开发者可以获得一定的红利。
2023-06-05
自己做投票软件app
考虑到投票软件的实现方法较为多样化,本文将以创建一款基于 Android 平台的在线投票应用程序为例来阐述自己做投票软件app的原理和详细过程。1. 确定开发语言我们可以使用 Java 作为 Android 应用程序的开发语言。Java 作为一门流行且基础
2023-06-05
自在家app是哪家公司开发的
自在家App是北京悦彩科技有限公司旗下的一个家居服务平台,是国内领先的居家服务一站式服务平台之一,主要提供家庭清洁、家庭保洁、家电维修、管道疏通、家居安装、家庭维修、园林绿化等服务。自在家App是2014年创建的,总部位于北京市朝阳区东三环中路9号SOHO
2023-06-05
自己开发的app被攻击了
在现今的移动互联网时代,app已经成为了人们不可或缺的工具,出于各种安全考虑,这些app的开发者会在开发阶段投入大量资源来确保其安全性。但是,在有心人的攻击下,即使是最完善的防御措施也可能无法抵御攻击。在开发过程中,开发者需要具备对攻击的学习和理解的能力,
2023-06-05
自己制作家居装修app
随着人们对于家居装修的需求不断增加,家居装修app的开发也越来越受到关注。自己制作一个家居装修app是一个比较复杂的过程,需要进行多个方面的考虑和设计。本文将详细介绍自己制作家居装修app的原理和过程。1. 分析目标用户在设计家居装修app前,首先要分析目
2023-06-05
如何开发一款app自己可以编辑
开发一款可以自己编辑的APP需要有一定的前端开发基础和后端开发基础。下面将从原理和详细介绍两个方面来说明。1.原理开发一款可以自己编辑的APP需要了解一下几个技术:1.1.后端技术后端技术是指用于处理APP数据的技术,通常有以下几种技术:- 数据存储:数据
2023-05-30
app外包公司和自建团队哪个好
在移动应用开发领域,选择一个合适的开发团队需要仔细考虑。在外包公司和自建团队之间做出选择,需要对两者的优缺点有一定的了解。外包公司外包公司通常是一个专业的团队,他们已经积累了大量的经验,设计和技术能力更加专业化。他们拥有完善的开发流程和一系列标准化流程。这
2023-05-30
app外包开发与自建团队的区别
近年来,随着移动互联网的迅速发展,各种移动应用已经日益普及,许多企业和个人开始借助移动应用提升业务和个人品牌价值。而随着越来越多的人需要移动应用,越来越多的企业和个人需要应用开发服务。当然,在应用开发服务方面,一个选择是通过外包公司进行开发,另一个选择是通
2023-05-30
app怎么自己制作软件
要自己制作一个app软件,需要以下步骤:1. 想好你的app的功能和目的首先,你需要明确你的app要做什么,是为了解决什么问题,甚至需要确定你的app的受众人群是谁。只有清楚地了解你的app的目的,才能为它制定出实现它的具体计划。2. 学习编程语言和技术编
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1