可以自己做键盘的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的原理和步骤。1. 需求分析在制作动漫app时,首先需要进行需求分析,确定要开发什么类型的动漫app以及它需
2023-06-05
制作自己的漫画形象app
随着科技的不断发展,人们越来越依赖智能手机应用来满足自己的娱乐需求。其中,漫画形象app便是一种越来越受欢迎的应用。这类应用可以帮助用户创建自己的漫画形象,让用户在虚拟世界里创造自己的形象,得到更多的自我表达和展现机会。那么,如何制作自己的漫画形象app呢
2023-06-05
怎么自己制作在线app
在当前互联网的发展和普及下,移动端应用程序成为了人们生活中不可或缺的一部分,越来越多的人开始寻找自己的移动端应用,因此,如何制作在线APP成为了一种需求。本文将介绍自己制作在线APP的原理和详细介绍。一、在线APP的原理1. 手机网页和移动端应用程序的区别
2023-06-05
有什么可以自己做app的网站
想要自己做一个APP是一件很有挑战性的事情,从前端UI设计、后端开发、数据库构建到测试发布等都需要技术储备。不过,现在有许多网站可以帮助没有编程经验的人士创建自己的APP,下面就简单介绍几个常用的网站。1. Appy PieAppy Pie是一款无需编写代
2023-06-05
我想自己做个app软件可以吗
当今时代的移动设备已经成为人们日常生活中不可或缺的一部分。加之互联网的快速发展和智能手机、平板电脑等移动设备的普及,越来越多的人开始喜欢使用APP软件来帮助他们解决问题。因此,自己制作一款符合自己需求的APP软件也变得越来越流行。下面,我将向大家介绍如何制
2023-05-31
特斯拉计划开发自主app商店
特斯拉是全球最具知名度的电动汽车制造商之一,公司一直在探索新的领域,提供更好的解决方案。最近,有消息称特斯拉计划开发一种自主应用程序商店,这对汽车制造商来说是一个重大的进步。特斯拉的这个计划是基于一个非常简单的原理:提供更多的自由度和选择性。特斯拉现在已经
2023-05-31
什么是自建app
自建app是指非专业开发者通过使用现有的开发平台,自行开发和发布应用程序的过程。在此过程中,使用者不需要关注如何编写代码和其他专业的技术知识,只需要按照平台提供的操作步骤自行设计和开发应用程序,即可在平台上完成发布和上线。自建app的原理在于现有的应用平台
2023-05-31
什么app可以自己做成网站
在当前的互联网时代,个人或企业可能需要拥有自己的网站来展示自己或者提供一些服务,但是搭建一个网站需要专业的技能和大量的时间和精力。为了解决这一问题,一些APP或在线工具应运而生,可以帮助用户快速、简单地搭建自己的网站,本文将介绍几款可以自己做成网站的APP
2023-05-31
基金公司为什么不自建app卖基金
基金公司为什么不自建app卖基金?这个问题涉及到多个层面的原因,包括技术、成本、安全等方面。下面将从这些方面对这个问题进行详细介绍。1. 技术原因自建一个基金销售app需要考虑很多技术问题,包括开发、维护、升级、安全等方面。其中,最大的挑战是要保证基金销售
2023-05-30
把自己做成gif的app
把自己做成gif的应用程序是一种非常有趣且流行的趋势。此应用程序的原理基于将视频捕捉转换成gif文件的过程。想要做到这一点,我们需要使用一些特定的工具和技术。原理将自己做成gif的应用程序有两个核心的原理:捕捉视频:你需要通过使用摄像头或者屏幕的截屏功能来
2023-05-30
安卓开发自动打开app
在安卓开发中,我们常常需要让我们的应用程序自动打开特定的应用程序。比如,你的应用程序需要在每天早上7点自动打开某个音乐播放器,或者在特定的日期和时间自动打开某个闹钟应用程序。这个功能可以通过安卓系统中的“Intents”机制实现。Intents机制是安卓系
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1