iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Android如何实现iPhone晃动撤销输入功能
  • 692
分享到

Android如何实现iPhone晃动撤销输入功能

androidiphone 2023-05-30 23:05:31 692人浏览 泡泡鱼
摘要

小编给大家分享一下Android如何实现iPhone晃动撤销输入功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!很多程序中我们可能会输入长文本内容,比如短信,写

小编给大家分享一下Android如何实现iPhone晃动撤销输入功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

很多程序中我们可能会输入长文本内容,比如短信,写便笺等,如果想一次性撤销所有的键入内容,很多手机需要一直按住退格键逐字逐句的删除,稍稍麻烦,不过在iPhone上,有个人性化的功能,当我们想要去撤销刚刚输入的所有内容的时候,可以轻轻晃动手机,会弹出提示框,点击确定就可以清空内容,如下图:

Android如何实现iPhone晃动撤销输入功能

在android中,一般手机貌似没有定制这个功能,不过我们可以自己去实现这样的功能,放置在我们的项目程序中,体现更人性化的设计,思路很简单,主要是利用手机内置的加速度传感器装置,其实大家一定会想到微信的“摇一摇”功能,个人觉得该功能就应该是这样实现的,当我们错误输入并想撤销所有输入内容的时候,可以摇晃我们的设备,弹出一个自定义的alertdialog,根据按钮的点击事件完成相应的清除操作。

首先我们自己定义一个alertdialog,自己依据个人的设计写一个布局,之后在代码中创建一个AlertDialog并使用LayoutInflater载入写好的布局文件

AlertDialog.Builder builder = new AlertDialog.Builder(this);dialog = builder.create();LayoutInflater inflater = LayoutInflater.from(this);LinearLayout layout = (LinearLayout) inflater.inflate(R.layout.alertdialog, null);

当弹出对话框的时候,我们希望点击框外的空白处不会让对话框消失,我们可以设置如下属性:

dialog.setCanceledOnTouchOutside(false);

然后可以显现对话框,并自己定义其大小等属性:

dialog.show();dialog.setContentView(layout, new LayoutParams(400, 250));

其次我们需要了解如何使用加速度传感器的相关的东西:

获取系统的相关服务,所有传感器都须要通过SensORMannager来访问,sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

通过SensorManager对象获取相应的Sensor类型的对象,本例使用加速度传感器,其类型是TYPE_ACCELEROMETER,
sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

创建一个SensorEventListener 对象的监听器,来监测Sensor 事件,主要重写onSensorChanged方法。

在onResume中注册监听事件,在注册时,会有监听器listener,感应装置sensor和灵敏度rate三个参数,其中灵敏度有四种:
SENSOR_DELAY_FASTEST:最灵敏的,反应非常迅速
SENSOR_DELAY_GAME:从名字可以看出多数游戏中会用到的频率
SENSOR_DELAY_NORMAL:一般情况下使用的频率,比较慢,适用多数应用
SENSOR_DELAY_UI:使用传感器更新UI中的数据,使用该值

在onPause中取消注册监听事件

重写onSensorChanged方法时,使用SensorEvent的实例来获取一系列的值

float values[] = event.values;float x = values[0];// x轴方向的重力加速度float y = values[1];// y轴方向的重力加速度float z = values[2];// z轴方向的重力加速度

每个值的范围都介于-10~10之间,可以通过对各个方向值的判断来到达我们所需要的效果,即当各个方向上的数值满足一定条件后去触发我们预期的事件

PS:为了避免出现没有输入的时候摇晃也弹出窗口,或者在已经弹出对话框后继续摇晃还会弹窗,我们可以使用一个自己定义的标志位加以控制

下为主要代码部分以及实现后的效果图

import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.os.Bundle;import android.os.Vibrator;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup.LayoutParams;import android.widget.Button;import android.widget.EditText;import android.widget.LinearLayout;import android.app.Activity;import android.app.AlertDialog;public claSSMainAextendsActivity{private SensorManagersensorManager;private Vibratorvibrator;//手机的振动private EditTexttxt_content;private Buttonbtn_delete,btn_cancle;private AlertDialogdialog;private Sensorsensor;private booleanhasshaked=false;//判断是否已经摇晃的标志位private SensorEventListenerlistener=newSensorEventListener(){@Overridepublic void on SensorChanged(SensorEventevent){//TODOAuto-generatedmethodstubfloatvalues[]=event.values;floatx=values[0];//x轴方向的重力加速度floaty=values[1];//y轴方向的重力加速度floatz=values[2];//z轴方向的重力加速度//这里设置的一个阈值为18,经测试比较满足一般的摇晃,也可以自己按需定义修改intmedumValue=18;if((Math.abs(x)>medumValue||Math.abs(y)>medumValue||Math.abs(z)>medumValue)&&hasShaked==false){if((!(txt_content.getText().toString().equals("")))&&hasShaked==false){vibrator.vibrate(200);//设置振动的频率showDialog();hasShaked=true;}}}@OverridepublicvoidonAccuracyChanged(Sensorsensor,intaccuracy){//TODOAuto-generatedmethodstub}};@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);sensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);sensor=sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);vibrator=(Vibrator)getSystemService(VIBRATOR_SERVICE);txt_content=(EditText)findViewById(R.id.txt_content);}private void showDialog(){AlertDialog.Builderbuilder=newAlertDialog.Builder(this);dialog=builder.create();LayoutInflaterinflater=LayoutInflater.from(this);LinearLayoutlayout=(LinearLayout)inflater.inflate(R.layout.alertdialog,null);dialog.setCanceledOnTouchOutside(false);//点击框外的空白处不会让对话框消失dialog.show();dialog.setContentView(layout,newLayoutParams(400,250));btn_delete=(Button)layout.findViewById(R.id.btn_delete);btn_delete.setOnClickListener(newOnClick());btn_cancle=(Button)layout.findViewById(R.id.btn_cancle);btn_cancle.setOnClickListener(newOnClick());}classOnClickimplementsandroid.view.View.OnClickListener{@OverridepublicvoidonClick(Viewv){//TODOAuto-generatedmethodstubswitch(v.getId()){caseR.id.btn_delete:txt_content.getText().clear();dialog.dismiss();hasShaked=false;break;caseR.id.btn_cancle:dialog.dismiss();hasShaked=false;default:break;}}}@OverrideprotectedvoidonResume(){//TODOAuto-generatedmethodstubsuper.onResume();//注册监听事件if(sensorManager!=null){sensorManager.reGISterListener(listener,sensor,SensorManager.SENSOR_DELAY_NORMAL);}}@OverrideprotectedvoidonPause(){//TODOAuto-generatedmethodstubsuper.onPause();//取消监听if(sensorManager!=null){sensorManager.unregisterListener(listener);}}}

Android如何实现iPhone晃动撤销输入功能

点击“撤销键入”,即可将文字清空!

以上是“Android如何实现iPhone晃动撤销输入功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: Android如何实现iPhone晃动撤销输入功能

本文链接: https://www.lsjlt.com/news/222023.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android如何实现iPhone晃动撤销输入功能
    小编给大家分享一下Android如何实现iPhone晃动撤销输入功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!很多程序中我们可能会输入长文本内容,比如短信,写...
    99+
    2023-05-30
    android iphone
  • mfc撤销功能如何实现
    MFC(Microsoft Foundation Classes)是一个用于开发Windows应用程序的C++类库。MFC提供了撤销...
    99+
    2023-09-16
    mfc
  • mfc如何实现撤销功能
    MFC(Microsoft Foundation Classes)是一个用于开发Windows应用程序的框架,可以通过以下步骤实现撤...
    99+
    2023-10-23
    mfc
  • canvas绘图中如何实现撤销功能
    这篇文章给大家分享的是有关canvas绘图中如何实现撤销功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近在做网页版图片处理相关的项目,也算是初入了 canvas 的坑。项目需求中有一个给图片添加水印的功能。...
    99+
    2023-06-09
  • css如何实现输入自动提示搜索提示功能
    这篇文章将为大家详细讲解有关css如何实现输入自动提示搜索提示功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。代码如下:.sugLayerDiv{ position:relative;&nbs...
    99+
    2023-06-08
  • shell命令行如何实现输入与输出功能
    这篇文章将为大家详细讲解有关shell命令行如何实现输入与输出功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。标准输入/输出和重定向,Linux发行版Fedora Core Linux,而Red Hat...
    99+
    2023-06-09
  • BootStrapz2select2如何实现查询以及输入功能
    小编给大家分享一下BootStrapz2select2如何实现查询以及输入功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先...
    99+
    2024-04-02
  • 电脑如何实现语音输入文字功能
    电脑实现语音输入文字功能主要依赖语音识别技术。下面是一种常见的实现方式:1. 麦克风:首先需要通过一个麦克风或者其他录音设备来获取语...
    99+
    2023-09-05
    电脑
  • jquery如何实现输入关键字查询功能
    本篇内容主要讲解“jquery如何实现输入关键字查询功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jquery如何实现输入关键字查询功能”吧!一、前置准备在使用JQuery的输入关键字查询之...
    99+
    2023-07-05
  • EditText如何实现输入限制和校验功能
    这篇文章主要介绍了EditText如何实现输入限制和校验功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、方法1)输入限制通过android:digits限制只能输入小写...
    99+
    2023-05-30
    edittext
  • flutter微信聊天输入框功能如何实现
    这篇文章主要讲解了“flutter微信聊天输入框功能如何实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“flutter微信聊天输入框功能如何实现”吧!高仿微信聊天输入框,效果图如下(目前都...
    99+
    2023-07-05
  • VueElectron实现输入法自动刷字数功能详解
    目录安装依赖Vue代码Electron 代码总结思路:循环使用 robotjs 库模拟键盘点击,从而实现输入法刷自动刷字数的功能。 安装依赖 npm i robotjs Vue代码 ...
    99+
    2022-12-20
    Vue Electron自动刷字数 Vue输入法自动刷字数
  • 如何在Android应用中利用ViewPager撤消左右滑动切换功能
    这期内容当中小编将会给大家带来有关如何在Android应用中利用ViewPager撤消左右滑动切换功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ViewPager取消左右滑动切换功能的实例代码,具体代...
    99+
    2023-05-31
    android viewpager age
  • javascript如何实现input输入框模糊提示功能
    这篇文章主要为大家展示了“javascript如何实现input输入框模糊提示功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript如何实现in...
    99+
    2024-04-02
  • android登录功能如何实现
    Android登录功能可以通过以下步骤实现:1. 创建登录界面:创建一个登录界面的布局文件,包括用户名和密码输入框、登录按钮等组件。...
    99+
    2023-08-09
    android
  • vue2.0如何实现移动端的输入框实时检索更新列表功能
    这篇文章将为大家详细讲解有关vue2.0如何实现移动端的输入框实时检索更新列表功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图html  &l...
    99+
    2024-04-02
  • Android如何实现录音功能
    这篇文章给大家分享的是有关Android如何实现录音功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。本文介绍了Android实现录音的实例代码(MediaRecorder),分享给大家,具体如下:Android...
    99+
    2023-05-30
    android
  • android分享功能如何实现
    实现Android分享功能可以使用Android系统提供的分享功能,具体步骤如下:1. 创建一个分享的按钮或菜单项,例如在布局文件中...
    99+
    2023-10-09
    android
  • Android开发中怎么实现一个输入框提示功能
    这篇文章给大家介绍Android开发中怎么实现一个输入框提示功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。可以使用cursor来动态加载AutoCompleteTextView的数据,从而 实现时时搜索提示,要实现...
    99+
    2023-05-31
    android roi
  • 怎么在Android应用中实现一个动态匹配输入的内容功能
    怎么在Android应用中实现一个动态匹配输入的内容功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、AutoCompleteTextView独特属性:android:...
    99+
    2023-05-31
    android roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作