android长按,android长按删除的实现

为什么 Android 的应用上较少左(右)划删除,大多是长按删除?

Android 应用少采用向左向右滑动删除,大多数为长按删除的原因如下:

我们提供的服务有:成都网站建设、做网站、微信公众号开发、网站优化、网站认证、和平ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的和平网站制作公司

向左向右滑动,需要给每个listview的item单独的加上很多代码来控制显示和隐藏文字,更容易出现bug。

长按删除这一操作,是从android系统推出以来就有的功能,便于用户操作,积累了操作习惯。

Android点击事件分为点击事件和长按事件,两个事件可以单独进行相应的,底层就是识别接触点,回调执行相应的业务逻辑。

android中利用View中的onTouchEvent捕捉长按事件

在自定义定view中想要实现的效果是:当手机按住屏幕时,如果在指定的时间内没有移动(如1秒),那么进入长按模式,此时手指在屏幕上移动都算作长按模式。如果手机按住屏幕就立马移动,那么就算作移动模式。

MotionEvent提供了当前的操作类型,按下(ACTION_DOWN)、 移动 (ACTION_MOVE)、弹起 (ACTION_UP)。MotionEvent 类同时提供了记录当前坐标的函数(getX(),getY())。event.getDownTime()用来记录event发生时的时间,event.getEventTime()用来记录最近一个ACTION_MOVE发生时的时间。

大概思路如下:在按下时记录x,y坐标以及按下时间,当第一次移动的时候获取移动的时间,如果大于指定的长按时间,那么进入长按模式,否则就是普通的移动模式。很容易在模拟器里面实现了这个效果,但是当在真机里面运行时,却无法实现这样的效果。原来模拟器点击的时候能够保证在不移动鼠标的情况下不触发ACTION_MOVE,但是真机却很敏感,几乎在ACTION_DOWN后的几毫秒之后就立马不停的ACTION_MOVE了。想了一下,其实只要稍微变通下变可以在真机上也实现相同的效果了。那就是判断ACTION_MOVE后的坐标和ACTION_DOWN的坐标的偏移值是否小于我们指定的偏移像素,如果在指定值内,那么认为没有移动。

android 中怎么监听按键的长按事件

长按事件一般是放到 onKeyLongPress 函数中来处理的。

那具体是怎么做的呢,下面请看步骤:

先在 onKeyDown 函数中判断 event.getRepeatCount 的次数(实际上长按就是由一系列的onKeyDown事件触发的)

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

case KeyEvent.KEYCODE_VOLUME_DOWN:

case KeyEvent.KEYCODE_VOLUME_UP:

if (mCameraAppView.getVisibility() != View.VISIBLE) {

return false;

}

Log.v(TAG,"onKeyDown event.getRepeatCount() "+event.getRepeatCount());

if (event.getRepeatCount() == 0) {

event.startTracking();

return true;

}

return true;

}

return super.onKeyDown(keyCode, event);

}

android手机长按home键能起什么作用?

android手机长按home键能起作用的作用有以下几类:

Home键可以说是我们每天使用最多的功能之一,一般我们使用这个按键多数是用于返回主页或调出语音助手等等。

各个版本的安卓,常按home键,屏幕会出现最近是用过的app程序图标。

对于安卓4.1来说,则更加明细,即不仅会出现最近用过的aop还会出现,正在后台运行的程序,一个简单的小窗口即可迅速切换到后台程序。

简单的理解就是,手机home键就是菜单键和主键。


当前文章:android长按,android长按删除的实现
当前网址:http://hbruida.cn/article/dsoheis.html