- 浏览: 229287 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (86)
- Java_基础 (6)
- ubuntu (15)
- 数据结构 (1)
- linux_c (9)
- linux_基础 (5)
- linux_文件I/O (0)
- linux_进程与线程 (0)
- linux_网络编程 (0)
- linux_GUI编程 (0)
- linux_数据库 (0)
- JavaMail (1)
- android_基础 (31)
- android_UI (4)
- android_Graphics (2)
- android_性能 (0)
- android_线程机制 (0)
- android_设计模式 (0)
- android_framework (0)
- android_移植 (0)
- 学习方法 (6)
- 转载 (26)
- 翻译 (0)
- 读书笔记 (10)
- MFC (13)
- C++ (17)
- Oracle (2)
- Objective-C (0)
- IOS (0)
最新评论
-
darkjune:
不错的文章
android/java设置DNS缓存 -
lz_cleaner:
对我太有用了,万分感谢,写的这么详细。
斜率计算:反正切函数 Math.atan() 与 Math.atan2() 的区别 -
Wesley.S:
兄弟,能告诉我 Security 的属性名在哪里查找吗??
android/java设置DNS缓存 -
panhe1992:
请问这个方法安装的ubuntu要如何删除,删除的时候貌似mbr ...
win7下(有隐藏分区)硬盘安装ubuntu
自定义的长按事件。
Activity调用。
public class LongPressView extends View{ private static final String TAG = "LongPressView"; private int mLastMotionX, mLastMotionY; private boolean isMoved; //长按的runnable private Runnable mLongPressRunnable; //移动的阈值 private static final int TOUCH_SLOP = 20; public LongPressView(final Context context) { super(context); mLongPressRunnable = new Runnable() { @Override public void run() { Log.i(TAG, "mLongPressRunnable excuted"); performLongClick(); // 执行长按事件(如果有定义的话) } }; } /* * * 1)在down的时候,让一个Runnable在设定时间后执行, * 如果设定时间到了,没有移动超过定义的阈值,也没有释放,则触发长按事件 * * 2)在移动超过阈值和释放之后,会将Runnable从事件队列中remove掉,长按事件也就不会再触发了 * */ public boolean dispatchTouchEvent(MotionEvent event) { int x = (int) event.getX(); int y = (int) event.getY(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: mLastMotionX = x; mLastMotionY = y; isMoved = false; /* * 将mLongPressRunnable放进任务队列中,到达设定时间后开始执行 * 这里的长按时间采用系统标准长按时间 */ postDelayed(mLongPressRunnable, ViewConfiguration.getLongPressTimeout()); break; case MotionEvent.ACTION_MOVE: if( isMoved ) break; if( Math.abs(mLastMotionX-x) > TOUCH_SLOP || Math.abs(mLastMotionY-y) > TOUCH_SLOP ) { //移动超过阈值,则表示移动了 isMoved = true; removeCallbacks(mLongPressRunnable); } break; case MotionEvent.ACTION_UP: //释放了 removeCallbacks(mLongPressRunnable); break; } return true; } }
Activity调用。
public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); View mLongPressView = new LongPressView(this); mLongPressView.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { Toast.makeText(MainActivity.this, "I got a long press!", Toast.LENGTH_SHORT).show(); return false; } }); setContentView(mLongPressView); } }
- LongPressEventDemo.rar (14.4 KB)
- 下载次数: 63
发表评论
-
mac 下 android studio 识别不出真机
2016-10-25 19:10 1527$ system_profiler SPUSBDataTyp ... -
Android:INSTALL_FAILED_UPDATE_INCOMPATIBLE 错误解决方法
2013-04-22 17:20 1777晚上在测一个widget,前面测的好好的,后面再安装的时候发 ... -
android:WebView使用
2012-10-30 22:55 15780如何创建WebView: 1、添加权限:Androi ... -
android:string.xml文件中的整型和string型代替
2012-09-18 12:16 993在android的开发中 ... -
android:ListView中放置Button导致点击失效
2012-08-13 23:58 2457ListView 和其它能触发点击事件的widg ... -
android:PopupWindow的使用
2012-07-31 10:51 8655项目中要用到PopupWindow。查了一下用法, ... -
android:实现双击事件(DoubleClick)
2012-07-31 10:32 11528自己实现的双击事件,以Button为例说明。 publi ... -
Android工程名出现红色感叹号
2012-07-09 16:16 1332如果一个android项目引用过第三方库 ... -
matrix使用:平移
2012-06-21 13:19 2012android绘图中使用的矩阵 ... -
ListView拖动时背景变黑的问题
2012-06-20 17:28 925操作ListView的时候,直接用触摸拖动视图 ... -
android:Button添加图片
2012-06-20 15:52 5545在button上添加图片: <Button ... -
android:本地图片转换为位图
2012-06-20 15:09 1603/** * 将本地图片转换为位图 ... -
android/java设置DNS缓存
2012-06-18 21:44 10581在通过DNS查找域名的过程中,可能会经过多台中间DNS服务器 ... -
android使用尺寸资源
2012-06-17 12:00 23411.在values文件夹下建立名为dimens.xml的文件 ... -
eclipse中统计代码行数
2012-06-05 12:14 906在eclipse中, 打开File Search对话框, ... -
设置 Eclipse 智能提示,大幅度减少 alt+/ 使用频率
2012-06-05 10:06 1014以往 我们往往在输入 ... -
斜率计算:反正切函数 Math.atan() 与 Math.atan2() 的区别
2012-06-04 21:05 16108我们可以使用正切操作 ... -
Drawable, Bitmap和byte[]的转换
2012-06-17 12:00 860android在处理一写图片资源的时候,会进行一些类型的转换 ... -
Android获取设备信息
2011-12-01 11:18 1179android 获取设备型号: import android. ... -
Android 中自定义属性(attr.xml,TypedArray)的使用
2011-11-30 11:08 1581一、 在res/values 文件下定义一个attrs.xml ...
相关推荐
通过这种方式,我们就成功地实现了Android自定义按钮的长按功能。这种方法允许我们在不改变原有按钮样式的情况下,轻松添加长按行为,为用户提供更多的交互可能性。同时,自定义按钮类也可以根据需求扩展其他功能,...
// 自定义长按事件的逻辑 return true; } }); ``` 四、自定义链接样式 除了点击和长按事件,我们还可以自定义链接的样式,例如颜色、下划线等。这可以通过设置`SpannableString`实现: ```java String text = ...
总之,实现WebView自定义长按选择并提供收藏和分享选中文本的功能,涉及到WebView的事件监听、JavaScript与Java的交互、自定义菜单的创建以及Android的分享和存储机制。这需要开发者具备扎实的Android基础和一定的...
在Android开发中,自定义长按事件是一项基本且重要的技能,尤其在设计交互式用户界面时。本知识点主要探讨如何在Android应用中实现自定义的长按事件,并结合实际的项目代码进行解析。 首先,我们需要了解Android中...
综上所述,通过自定义Adapter、设置监听器以及使用接口回调,我们可以在RecyclerView中实现点击和长按事件。这个过程不仅涉及到事件监听,还涉及到组件交互和业务逻辑处理,是Android开发中的常见实践。
Android 自定义按钮点击事件和长按事件对比 一个按钮同时实现点击和长按事件,有时候会有冲突,我们针对这一现象来自定义按钮来区分点击和长按事件 1.xml中 <LinearLayout xmlns:android=...
本示例着重讲解如何在ListView中实现长按和单击事件的捕捉。 首先,我们要创建一个自定义的Adapter,这个Adapter是ListView与数据源之间的桥梁,负责将数据转化为ListView可显示的View。在适配器中,我们需要重写`...
在Android开发中,"长按菜单响应"是一个常见的交互功能,允许用户通过长时间按下屏幕上的元素来触发特定的上下文操作或菜单。本教程将深入探讨如何实现这一功能,主要涉及以下几个方面: 1. **监听长按事件**: 在...
Android二维码生成,包括一般二维码、彩色二维码、带logo二维码或带logo的彩色二维码、黑色色块用图片代替的二维码。可拍照和相册选取图片,二维码长按保存至本地。具体效果请看:...
在`ExpandableListViewDemo`项目中,开发者通常会创建一个自定义的`ExpandableListAdapter`,在这个适配器中实现上述的点击和长按事件处理逻辑。同时,还需要在主活动中设置`ExpandableListView`并绑定适配器。 ...
在Android开发中,处理文本链接的交互是一个常见的需求。用户可能会点击链接来跳转到其他页面,也可能希望长按链接来触发更多...这种方法既保留了链接的默认外观,又允许我们自定义长按事件,从而提供更好的用户体验。
在Android开发中,Button是用户界面(UI)中不可或缺的组件,用于接收用户的点击事件,通常用于触发一些操作。然而,除了单击之外,Button还可以响应长按事件,以实现更多的交互功能。本Demo旨在展示如何在Android...
综上所述,实现Android ListView的长按删除功能,主要涉及以下几个步骤:设置适配器、添加长按监听器、处理长按事件、删除数据源中的项并更新适配器,以及可选地提供删除确认提示。通过这些步骤,你可以为你的...
在Android开发中,实现“长按水波纹扩散效果”是一种增强用户交互体验的设计手法,它使得用户在长时间按下屏幕时,触摸位置会出现类似水波纹的动态扩散效果。这种效果通常用于按钮、列表项或其他可点击的界面元素,...
有的时候我们不需要这个Toast,或者说长按MenuItem的时候需要做一些其他的事情,该怎么办呢? 实现过程 首先我们先获取该MenuItem的View: View menu_more = findViewById(R.id.menu_more); 然后给它设置一个长按...
在Android中,事件处理主要通过事件监听器(Event Listeners)来实现,包括点击事件、触摸事件等。对于长按事件,我们通常使用`View.OnLongClickListener`接口。当用户对某个视图(View)进行长按时,系统会触发该...