可以自己做键盘的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
近年来,人们对于职业发展越来越重视,找工作也成为了人们日常生活中不可避免的话题。而对于一个求职者而言,一份优质的简历就显得尤为重要。因此,开发一款自做简历的应用程序,成为了一个非常实用和有趣的方向。1.应用程序架构自做简历应用程序的架构可以分为:前端UI设
2023-06-05
自己开发的收款app能不能收钱
自己开发的收款app是有可能收钱的,而且很多人已经利用这种方式来实现了线上收款的目的。收款app的实现原理其实并不复杂,主要涉及以下几个方面的内容:支付网关、支付接口、支付系统的集成等等。首先,支付网关是指连接支付系统和商户网站的中介平台,可以完成订单处理
2023-06-05
自己如何手机开发彩票app
想要开发一个彩票APP,需要掌握以下几个方面的知识:1. 了解彩票业务的相关知识,包括彩票种类、购买方式、开奖机制等等;2. 掌握移动应用开发的技术,比如Android或iOS开发;3. 熟悉后端技术,包括服务器架设、数据存储、API开发等等;4. 掌握U
2023-06-05
制作一个自己的app
制作自己的app可以带来很多好处,比如提升个人技能、创造实用工具、以及获得经济收益等等。不过在开始制作前,需要掌握一些基本的知识。第一步:确定目标在制作app前,需要先确定自己的目标是什么。是要开发一个游戏,还是要开发一个能够解决某个实际问题的工具?还有,
2023-06-05
制作自己的虚拟人物app
制作自己的虚拟人物app需要从几个方面入手,包括设计、开发、技术选型等。下面将对这些方面进行详细的介绍。一、设计在设计方面,需要梳理产品的整体脉络以及功能模块,并进行初步的用户调研,确定产品的目标人群以及他们的需求。在这个过程中,需要注意:1.定位目标用户
2023-06-05
网络传媒公司是自己开发app么
网络传媒公司是一种依托互联网技术,通过网络传输和传播信息的企业。对于这样的企业来说,拥有一个自己的app无疑是一个非常好的选择,因为可以让用户更加便利地获取信息,提高品牌曝光率和用户黏性。那么,网络传媒公司是怎样开发自己的app的呢?首先,开发一个app需
2023-05-31
企业自建app 比较
企业自建App,是指企业内部或外部委托的开发人员,根据企业的需求和要求,自行设计、开发和构建的专属移动应用程序。相比于使用市场上已有的App或委托第三方开发团队的定制App,企业自建App更具有个性化、可控性强的特点。本文将详细介绍企业自建App的优缺点、
2023-05-30
傻瓜式自己做app
想要制作自己的手机应用程序吗?这可能听起来似乎很困难,但实际上,现在有很多非常简单易懂的应用程序开发工具可供选择,甚至不需要编程知识。本篇文章将介绍一些傻瓜式自己做app的原理和方法。一、app开发工具现在,有很多应用程序的开发工具可以帮助你自己制作app
2023-05-30
每天提醒自己做事的手机app
随着移动设备的日益普及,手机APP已经成为人们日常生活中不可或缺的一部分。其中,提醒类APP是具有很高实用性的一种APP,不少人的生活中都会用到这样的APP。那么,提醒类APP是如何工作的呢?下面我将从原理和实现角度为大家介绍一款可每天提醒自己做事的手机A
2023-05-30
没文化可以自己做app吗安全吗
在当今互联网普及的时代,很多人都想自己设计、开发出一个应用程序(App),来满足自己的需求、创造自己的价值。但是,对于没有编程基础、甚至没有计算机知识的人来说,是否真的可以自己DIY一个App呢?整理一下有关知识,可以发现答案是肯定的,但这需要一些具体的技
2023-05-30
共享自行车app开发需要哪些功能
随着城市化发展以及环保节能意识的提高,共享自行车成为了城市交通的新秀。共享自行车,就是利用智能技术,通过APP实现自行车的无桩自由骑行,用户可以通过手机APP找到附近的共享单车并进行车辆的解锁、骑行和还车等操作。共享单车app开发需要有以下几个主要功能:1
2023-05-30
app开发怎么给自己的app做限制
在App开发中,很多开发者会考虑给自己的App做一定的限制,比如限制用户的访问次数、限制用户的功能权限等等。这些限制可以保障App的正常运营,也可以保护开发者的商业利益。本文将详细介绍App开发中的限制原理及常用的限制方法。1. 原理App限制的原理其实很
2023-05-30
©2015-2021 自建app开发平台 www.appbyme.cn 蜀ICP备17005078号-1