快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

android的长按,android双击,单击,长按

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

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

公司主营业务:成都网站设计、网站制作、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出龙山免费做网站回馈大家。

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

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

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

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

android 长按事件 和 长按弹出上下文菜单如何处理

android 底层在当你点击控件2秒后就属于长按事件了,则进入长按事件监听,当点击少于2秒就直接进入点击事件了,望有帮助

移动端android,长按事件时,touchend事件不触发的解决方法

下面记录一个在工作中,遇到的touchend事件不触发的bug解决方法:

就是当长按特定按钮的时候,会启动一个事件,往杯子里面装水,当松开后,会有相关的操作,但是发现在部分安卓手机里面,长按松手后,touchend事件触发不了。一开始在网上找了好多回复,都说在touchstart事件里面加上e.preventDefault()就可以啦,但是经过亲身试验后,发现此方法对长按事件无效!

后来只能查看了一下touch其他的事件,发现还有 touchcancel 这么一个东西!

这个事件是在,当触控点被特定的实现方式打乱时触发 的,于是就怀着死马当活马医的心情,在页面添加了touchcancel事件,里面执行的逻辑和touchend事件里面的逻辑是一模一样的,结果还真是不让人失望,完美解决!

Android系统判断长按和点击

首先,支持长按和点击的视图一定是从Down开始就消费事件,在不设置Touch监听器OnTouchListener的情况下,每个事件都会进入onTouchEvent方法。

当一个视图设置了长按监听器,在Flag中会增加LONG_CLICKABLE标志。View内部静态类ListenerInfo集合了与View相关的各类监听。

Down事件时,会调用一个checkForLongClick方法,向主线程延迟发送一个Runnable。

延迟时间即系统认为多久算长按事件的时间,如果期间手指一直在触屏,当到达该时间时,主线程调度该任务,run方法,将触发performLongClick方法,系统认为这是一次长按事件。

手指还在触摸时,就会调用长按监听器的onLongClick方法,如果未达到时间,手指已经离开屏幕,Up事件,此时,如果还没有执行过Runnable,将会调用removeCallbacks方法移除该任务,确保手指离开后不会再触发长按Runnable,同时,执行performClick方法,系统认为这是一次点击事件。

任重而道远

在交互细节上,Android 与 iOS 有哪些区别?

IOS与安卓的区别:

1、两者运行机制不同:IOS采用的是沙盒运行机制,安卓采用的是虚拟机运行机制。

2、两者后台制度不同:IOS中任何第三方程序都不能在后台运行;安卓中任何程序都能在后台运行,直到没有内存才会关闭。

3、IOS中用于UI指令权限最高,安卓中 数据处理 指令权限最高

iOS只有一个物理键,android有三个物理键

2 iOS和android的底层交互设计不同

1、返回的入口不一致,android基本上是硬件返回,iphone则是屏幕软键返回。但这点很可能随着Android4.0的出现而改变;

2、长按为android的一个基本的标配操作,但iOS应尽量避免;这点造成了很多操作上的不一样,例如删除操作,iOS为滑动,android为长按

3、Android有menu键,点击后调出menu菜单,iOS没有;

4、tab的处理上也不一致,因为iPhone没有menu菜单,更多的操作很可能放在最后一个tab里,叫“more”;

5、应用的通知处理也不一致,iOS为图标右上角的小红圈,Android为statuesbar中的滚动显示;

6、iPhone有子tab,android好像还没有看到有,除非是第三方应用自己添加的控件。

2.操作栏

a )安卓操作或tab均放上方,以免与虚拟键盘冲突,而非ios的下方,但许多安卓应用也按ios的来设计,因此这个点的设计更改可以酌情考量; iPhone 5c, 任何时候从屏幕下方可以拉出“控制中心”,Android 是从上方拉出了

只说一点,滑动屏幕的感受,iOS是最顺畅最自然的。在商场里体验过很多android,滑动的感受总有那么点怪怪的,或者说有点生硬,低配置的还有卡顿等现象。

OS 用导航栏左上角的返回钮,android 用户习惯按全局 back 键。

Android 见啥都想长按;iOS用户则非常不习惯,只会点来点去。

iOS上面捏合手势是标配;Android 上不是跑太快就卡的狠要么没反应,总之各种难过少人用。

Android 下边缘有软键,交互元素要离远点

2.iOS 双击home键的界面完全更改,改成卡片式预览。如果觉得拨动app缩略图行进过慢可以拨动下方的app图标,会稍微快一点。向上推app缩略图来关闭app。

Android,在主界面,按左键 ,可以预览所以打开的应用,向上推 可关闭app

在短信中,向左稍稍拉动可以显示每条短信的具体收发时间。

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);

}

如果一直按着不放,通过打 log 可以看到

onKeyDown event.getRepeatCount() 0

onKeyDown event.getRepeatCount() 1

onKeyDown event.getRepeatCount() 2

onKeyDown event.getRepeatCount() 3

onKeyDown event.getRepeatCount() 4

onKeyDown event.getRepeatCount() 5

onKeyDown event.getRepeatCount() 6

onKeyDown event.getRepeatCount() 7

onKeyDown event.getRepeatCount() 8

onKeyDown event.getRepeatCount() 9

onKeyDown event.getRepeatCount() 10

onKeyDown event.getRepeatCount() 11

onKeyDown event.getRepeatCount() 12

……

第二步,重载 onKeyLongPressed 函数,在这个函数中你可以添加你的处理

@Override

public boolean onKeyLongPress(int keyCode, KeyEvent event) {

Log.v(TAG,"key long pressed keyCode = "+keyCode);

switch (keyCode) {

case KeyEvent.KEYCODE_VOLUME_UP:

case KeyEvent.KEYCODE_VOLUME_DOWN:

Log.v(TAG,"KEYCODE_VOLUME_UP/DOWN long pressed");

lockLongPressKey = true;

onShutterButtonLongPressed();

return true;

default:

break;

}

return super.onKeyLongPress(keyCode, event);

}

第三步,如果在onKeyUp 函数中也处理了相同的按键的话,那么需要对 onKeyLongPress 和 onKeyUp 中该按键的处理作互斥处理了

@Override

public boolean onKeyUp(int keyCode, KeyEvent event) {

switch (keyCode) {

case KeyEvent.KEYCODE_VOLUME_UP:

case KeyEvent.KEYCODE_VOLUME_DOWN:

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

if(lockLongPressKey){

lockLongPressKey = false;

return true;

}

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

Log.v(TAG, "prepare for onShutterButtonClick..");

if (mEnableRecordBtn mReviewImage.getVisibility() != View.VISIBLE

mBgLearningMessageFrame.getVisibility() == View.GONE) {

if (mShutterButton != null mShutterButton.isEnabled()) {

onShutterButtonFocus(false);

collapseCameraControls();//fulin@20121101@fix PD1218 B121027-224

onShutterButtonClick();

}

}

}

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

return false;

}

return true;

}

return super.onKeyUp(keyCode, event);

}

互斥处理的原因是,长按事件处理完后,松开按键后就会执行 onKeyUp 函数。而这两处针对相同的按键想要实现的功能又不一样

固在此添加一个 private boolean lockLongPressKey = false; 变量,在 onKeyLongPress 函数中处理过以后,在 onKeyUp中便不再处理。

2, button

自定义的 button 长按事件则是通过实现 OnLongClickListener 接口来做到的。

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnLongClickListener;

import android.widget.Button;

import android.widget.Toast;

public class MyActivity extends Activity implements OnLongClickListener{

Button button;//声明按钮的引用

public void onCreate(Bundle savedInstanceState) {//重写的onCreate方法

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

button = (Button) this.findViewById(R.id.button);//得到按钮的引用

button.setTextSize(20);

button.setOnLongClickListener(this);//注册监听

}

public boolean onLongClick(View v) {//实现接口中的方法

if(v == button){//当按下的是按钮时

Toast.makeText(

this,

"长时间按下了按钮",

Toast.LENGTH_SHORT

).show();//显示提示

}

return false;

}

}


本文标题:android的长按,android双击,单击,长按
文章起源:http://6mz.cn/article/dscgphe.html

其他资讯