可以自己做键盘的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开发费用的因
2023-06-05
自己想接单做app推广
在现在的社交网络时代,app推广已经成为了越来越多企业的营销方式。通过推广,可以让更多的用户知道你的app,从而提高品牌曝光度和用户量。如何自己接单做app推广呢?下面是其中一种方法。一、了解app推广的方式1.搜索引擎优化(SEO)通常就是对app的标题
2023-06-05
自己开发的app报病毒
开发一款安全可靠的应用程序是开发者的首要任务之一。然而,在开发和发布应用程序时,可能会遇到报告“病毒”问题。这是因为应用程序要使用特定API和硬件。一些应用程序或模块可以对API反复进行操作,因而被杀毒软件误判成病毒而被拦截或删除。本文将介绍开发应用程序的
2023-06-05
自己制作app怎么赚钱
制作App赚钱的方法有很多种,以下是一些主流赚钱方式:1. 广告收入 广告收入是App开发者最主要的盈利方式之一。移动广告市场以每年30%的增长率迅速发展,为App开发者提供了丰富的广告定制方式。广告最主要的分类有三种:展示广告、插屏广告和悬浮广告。展示广
2023-06-05
制作app自动签到软件叫什么
制作app自动签到软件叫做自动化脚本,这是一种软件自动化测试工具,能够模拟用户的操作,自动执行软件操作。自动化脚本的原理基于人机交互技术,利用自动化工具通过模拟用户操作,包括鼠标点击、键盘输入、手势滑动等,实现自动化测试。当用户输入账号密码完成登录、浏览页
2023-06-05
如何自己开发一套app
开发一套app需要进行以下步骤:一、明确应用场景和功能需求开发一款app之前,需要明确应用场景和功能需求,这是开发过程中最重要的一步。首先需要进行需求分析,了解用户需求,明确要开发的应用场景、功能、特点和需求等。例如,要开发一个美食类app,需要明确库存菜
2023-05-30
如何自己做门店app
门店APP是一款能够让消费者在线上浏览门店商品信息并进行线下消费的应用软件。随着移动互联网的快速发展,消费者对于这种方便又实用的购物模式越来越青睐。因此,自己做门店APP已经成为越来越多门店的选择。下面介绍如何自己做门店APP,其中包含的原理和实现步骤。一
2023-05-30
免费自建题库app
自建题库app可以方便学生自主学习和测试,也可以方便老师备课和出题。在这篇文章中,我们将介绍如何免费自建题库app。这个过程需要使用两个工具:Google Drive 和 Glide Apps。Google Drive 是一个免费的云存储服务,可以方便地创
2023-05-30
简单免费自建手机app
自建手机app对于很多人来说可能是一个意想不到的事情,但实际上,每个人都可以自己动手尝试。在这篇文章中,我将介绍一下简单免费自建手机app的原理和详细步骤。原理自建手机app本质上是创建一个移动应用程序,让用户能够通过其中的界面和功能来访问网站、玩游戏、获
2023-05-30
护士自考大专做题app
护士自考大专是近年来备受追捧的一种学历提升方式,它不仅可以帮助护士们提高自身专业水平,还能够提升自身薪资待遇和职业发展空间,因此备考护士自考大专的护士们越来越多。而在备考过程中,一款高效的做题app是必不可少的,下面就为大家讲解一下护士自考大专做题app的
2023-05-30
大公司都是自己有app开发团队么是真的吗
大公司一般都拥有自己的App开发团队,因为这有利于公司自身的业务发展和产品创新。以下是关于为什么大公司需要自己的App开发团队的原理和详细介绍。首先,App作为移动互联网最重要的入口之一,已经成为许多公司推广业务和产品的重要手段。因此,对于大公司来说,自己
2023-05-30
14岁自学开发app
App开发被认为是计算机科学中一个非常有前途的领域。目前,全球范围内App市场处于高速增长的阶段,随着智能手机等移动设备的流行,越来越多的人希望学习开发App的技能。然而,许多人认为必须拥有计算机科学或编程的背景才能开发App,这种想法其实是错的。在此,我
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1