android 活动监听是否点击某个view
Android 是否 View 点击 监听 某个 活动
2023-09-14 08:59:25 时间
前述(写给做过web前端的人)
在web H5,如果判断当前是否点击某个元素,一般会这样写。
window.addEventListener("touchstart",function(et){
if(e.target.id=='xx')
{
}
})
使用e.target 就能获取到真正点击的元素,自然帮我们排除了冒泡。
在web中,其实我们看到的可以假设是一张大图片,而事件真正的处理的其实依然是根据x以及y轴的坐标来判断点击的是哪个元素。
在android是没有target这种东西的,那么就需要我们用原始的方式执行。
实践
- 监听到活动的touch事件。(嗯,其实activity已经帮忙做了,开发者只需要override dispatchTouchEvent即可)
- 如何判断是否点击了某个元素。
判断是否点击某个元素
private boolean isTouchPointInView(View targetView,int currentX,int currentY)
{
if (targetView==null)
{
return false;
}
int[] localtion=new int[2];
targetView.getLocationOnScreen(localtion);
int left=localtion[0];
int top=localtion[1];
int right=left+targetView.getMeasuredWidth();
int bottom=top+targetView.getMeasuredHeight();
if (currentY >= top && currentY <= bottom && currentX >= left
&& currentX <= right) {
return true;
}
return false;
}
然后只要获取到x,y轴的坐标即可。
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
View view=findViewById(R.id.test);
//判断是否被点击
if (!isTouchPointInView(view,(int) ev.getX(),(int) ev.getY()))
{
//如果没有点击任何处理
}
break;
}
return super.dispatchTouchEvent(ev);
}
结语
以上只是个人笔记,如果对您有帮助的,我将感到荣幸。如果有不对的地方,请指正。
相关文章
- 他们都没告诉你适配 Android N 需要注意什么
- Android API之android.provider.ContactsContract
- 【Android 疑难杂症1】android.content.ActivityNotFoundException: Unable to find explicit activity class
- 72、android状态栏一体化,状态栏改变颜色
- Android之检查网络是否可用(跳转网络设置页面)
- android通过代码判断手机是否root
- Android Studio奇技淫巧
- macos安装android studio(Android Studio 2021.1.1)
- Android--百度地图之基础地图(三)
- Android项目快速开发框架探索(Mysql + OrmLite + Hessian + Sqlite)
- android 活动监听是否点击某个view
- Android 炫动滑动 卡片层叠布局,仿探探、人人影视订阅界面 简单&优雅:LayoutManager+ItemTouchHelper
- Android SQLtie获取一张表是否存在
- Android viewpage轮播
- Android 11.0 12.0SystemServer预安装app(大于50M比较大的app)
- android 9.0 10.0 USB连接模式默认设为MTP
- android 9.0 10.0 去掉音量键+Power键组合键的屏幕截图功能
- Android 软键盘的监听(监听高度,是否显示)
- 【Android Gradle 插件】build.gradle 中的 android 配置 ( 配置项 | compileSdkVersion 配置 | buildToolsVersion 配置 )
- 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
- 2014 android毕设代做 代做Android毕设 安卓毕设
- Android多媒体开发-- android中OpenMax的实现整体框架
- Android 使用 SVG 矢量图
- 【Android-Jetpack进阶】2、用 Navigation 导航、safe args 传参,NavigationUI 配合 AppBar 的 menu 菜单做跳转、DeepLink 跳转
- Android的报错提示:Failed to resolve: com.android.support:appcompat-v7:28.0.0