对于Android自定义控件开发,多点触控是一个必须要懂的知识点。因为在正常的情况下操作正常的控件,使用多指操作时,基本上都会出现问题。当需要对多指操作进行兼容时,就需要这方面的知识了。...本文选自《Android自定义控件高级进阶与精彩实例》一书,带你了解多点触控的基本知识。 ---- —— 正文 —— 假如,我们做了这么一个功能,图像跟随手指移动。...▼ 单点触控与多点触控 1 单点触控 单点触控与多点触控是相对的,单点触控的意思是,我们只考虑一根手指的情况,而且仅处理一根手指的触摸事件,而多点触控是处理多根手指的触摸事件。...除了消息外,我们也经常用下面这几个函数来获取手指的位置等信息,这些函数都没有参数,也都只有在单点触控时才能使用。 对于这几个函数的使用方法,这里就不再赘述了。...说明:单点触控是通过getAction来获取当前事件类型的,而多点触控是通过getActionMasked来获取的。 多点触控涉及的消息类型与单点触控的不一样,它的消息类型如下。
隐藏虚拟键盘 网上可以搜到各种方法,实际测试中,我的开发用机中,仅仅下面这个方法有效,记录一下。...imm.hideSoftInputFromWindow( v.getApplicationWindowToken( ) , 0 ); } } 在Activity启动时,默认隐藏软键盘...:** 在AndroidManifest.xml中找到你得Activity ,为它添加属性: android:windowSoftInputMode="stateAlwaysHidden" 输入遮挡Edittext...时的处理: 在AndroidManifest.xml中找到你得Activity ,为它添加属性: android:windowSoftInputMode="adjustPan"
:Android 屏幕适配 鸿洋:Android 屏幕适配方案 凯子: Android屏幕适配全攻略(最权威的官方适配指导) 自身的思考&实践 给你带来一种全新、全面而逻辑清晰的Android屏幕适配思路...使得“图片资源”匹配不同的屏幕密度 ---- 解决方案 问题:如何进行屏幕尺寸匹配?...但是LinearLayout**无法准确地控制子视图之间的位置关系**,只能简单的一个挨着一个地排列 所以,对于屏幕适配来说,使用相对布局(RelativeLayout)将会是更好的解决方案 本质2:根据屏幕的配置来加载相应的...UI资源 使用场景 你需要为标准 7 英寸平板电脑匹配双面板布局(其最小宽度为 600 dp),在手机(较小的屏幕上)匹配单面板布局 解决方案:您可以使用上文中所述的单面板和双面板这两种布局,...---- 总结 经过上面的介绍,对于屏幕尺寸大小适配问题应该是不成问题了。 ---- 解决方案 问题:如何进行屏幕密度匹配? 答: ?
android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。...【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示 【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间(可以显示全部屏幕) 【I...】adjustPan:当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分(软键盘会遮挡屏幕) android:windowSoftInputMode 活动的主窗口如何与包含屏幕上的软键盘窗..."stateHidden" 当用户选择该Activity时,软键盘被隐藏——也就是说,当用户确定导航到该Activity时,不管他离开的Activity的软键盘是可见还是隐藏都会被隐藏,不过当用户离开一个..."adjustResize" 该Activity主窗口总是被调整屏幕的大小以便留出软键盘的空间 "adjustPan" 该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。
软键盘的状态(是否它是隐藏或可见)没有被指定。系统将选择一个合适的状态或依赖于主题的设置。...stateHidden 当用户选择该Activity时,软键盘被隐藏——也就是说,当用户确定导航到该Activity时,不管他离开的Activity的软键盘是可见还是隐藏都会被隐藏,不过当用户离开一个...stateAlwaysHidden 当该Activity主窗口获取焦点时,软键盘总是被隐藏的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。...adjustUnspecified 这个是软件盘行为默认的设置。它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间,或是否窗口上的内容得到屏幕上当前的焦点是可见的。...adjustResize 该Activity主窗口总是被调整屏幕的大小以便留出软键盘的空间 adjustPan 该Activity主窗口并不调整屏幕的大小以便留出软键盘的空间。
" android:windowSoftInputMode="adjustPan" android:screenOrientation="portrait" android...如果加上的是 android:windowSoftInputMode="adjustPan"这样键盘就会覆盖屏幕。...:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示 【C】stateHidden:用户选择activity时,软键盘总是被隐藏 【D】stateAlwaysHidden...:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的 【E】stateVisible:软键盘通常是可见的 【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态... 【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示 【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间 【I】adjustPan
如果Activity是全屏模式,那么android.R.id.content就是占满全部屏幕区域的。...其他情况,如Activity是弹窗、或者7.0以后的分屏样式等,android.R.id.content也是弹窗的范围或者分屏所在的半个屏幕——这些情况较少,就暂且不考虑了。...↑也可以看出: rect.top值,其实就是标题栏的高度。(实际上,这也常常被用作为获取标题栏高度的方法) 屏幕高度-rect.bottom,是软键盘的高度。...因为能触发OnGlobalLayout事件的原因有很多,不止是软键盘的弹出变化,还包括各种子View的隐藏显示变化等,它们对界面高度的影响有限。...加上了这个判断之后,只有界面的高度变化超过1/4的屏幕高度,才会进行重新设置高度,基本能保证代码只响应软键盘的弹出。
今天做了一个登录注册页,iOS 端毫无 bug,Android 端却出现了问题。...当软键盘弹出后,Android 端的 tabs 移到了软键盘的上面,再仔细一看,整个界面都被压扁了,输入框也不知道去哪儿了。...stateUnspecified 未指定软键盘的状态,系统将自动选择一个合适的状态或依赖于主题中的设置。 stateUnchanged 当前界面的软键盘状态取决于上一个界面的软键盘状态。...stateHidden 用户选择 Activity 时,软键盘总是被隐藏。 stateAlwaysHidden 当该 Activity 主窗口有输入需求时,软键盘总是被隐藏。...adjustUnspecified 未指定软键盘与界面内容之间的显示关系。 adjustResize 该 Activity 总是调整屏幕的大小以便留出软键盘的空间。
:windowSoftInputMode=”stateUnspecified”,默认设置:软键盘的状态(隐藏或可见)没有被指定。...系统将选择一个合适的状态或依赖于主题的设置。 “stateUnchanged”, 软键盘被保持上次的状态。 “stateHidden”, 当用户选择该Activity时,软键盘被隐藏。...“stateAlwaysHidden”, 软键盘总是被隐藏的。 “stateVisible”,. 软键盘是可见的。...它不被指定是否该Activity主窗口调整大小以便留出软键盘的空间, 或是否窗口上的内容得到屏幕上当前的焦点是可见的。...“adjustResize”, (压缩模式) 当软键盘弹出时,要对主窗口调整屏幕的大小以便留出软键盘的空间。
android.intent.category.LAUNCHER 决定应用程序是否显示在程序列表里 android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题...这个属性能影响两件事情: 【一】当有焦点产生时,软键盘是隐藏还是显示 【二】是否减少活动主窗口大小以便腾出空间放软键盘 它的设置必须是下面列表中的一个值,或一个”state…”值加一个”adjust…”...:当这个activity出现时,软键盘将一直保持在上一个activity里的状态,无论是隐藏还是显示 【C】stateHidden:用户选择activity时,软键盘总是被隐藏 【D】stateAlwaysHidden...:当该Activity主窗口获取焦点时,软键盘也总是被隐藏的 【E】stateVisible:软键盘通常是可见的 【F】stateAlwaysVisible:用户选择activity时,软键盘总是显示的状态...【G】adjustUnspecified:默认设置,通常由系统自行决定是隐藏还是显示 【H】adjustResize:该Activity总是调整屏幕的大小以便留出软键盘的空间 【I】adjustPan
最近在项目中,需要获取到软键盘的高度,再将底部的布局上移键盘的高度,话不多说,直接上代码: 获取软键盘高度 //一个静态变量存储高度 public static int keyboardHeight...= new Rect(); decorView.getWindowVisibleDisplayFrame(rect); //计算出可见屏幕的高度...int displayHight = rect.bottom - rect.top; //获得屏幕整体的高度...*/ public static boolean isSoftInputShow(Activity activity) { // 虚拟键盘隐藏 判断view是否为空...= null) { // 隐藏虚拟键盘 InputMethodManager inputmanger = (InputMethodManager) activity
= new Rect(); decorView.getWindowVisibleDisplayFrame(rect); //计算出可见屏幕的高度...int displayHight = rect.bottom - rect.top; //获得屏幕整体的高度...> c = Class.forName("com.android.internal.R$dimen"); Object obj = c.newInstance()...*/ public static boolean isSoftInputShow(Activity activity) { // 虚拟键盘隐藏 判断view是否为空...= null) { // 隐藏虚拟键盘 InputMethodManager inputmanger = (InputMethodManager) activity
“splitActionBarWhenNarrow”加入栏位于屏幕的底部。在动作条显示操作项,当约束的水平空间。而不是少数出如今屏幕上方操作栏中的行动项目。操作栏被分成顶部导航部分和操作项的底部栏。...“stateUnchanged” 软键盘上一次保存在不论什么状态,是否可见或隐藏,当活动走到前台。 “stateHidden” 软键盘是隐藏的,当用户选择activity时。...“stateAlwaysHidden” 总是隐藏的。...,或者窗体的内容是否锅使屏幕上当前的焦点可见。...“adjustResize” 活动的主窗体总是会去调整大小使软键盘在窗体中 “adjustPan” 活动的主窗体不是软键盘调整大小以腾出空间。
文章目录 一、计算素材宽高与屏幕布局宽高比例系数 参考文档 : 设备兼容性概览 屏幕兼容性概览 支持不同的像素密度 声明受限屏幕支持 在博客 【Android 屏幕适配】屏幕适配通用解决方案 ② ( 自定义组件解决方案...实际坐标数据 ; 在博客 【Android 屏幕适配】屏幕适配通用解决方案 ③ ( 自定义组件解决方案 | 获取设备状态栏高度 | 获取设备屏幕数据 ) 中 , 完成了前两项工作 , 已经获取了实际的屏幕数据...*/ public final float REFERENCE_HEIGHT = 1232; 通过 , 可以得到屏幕中布局的宽高 , 直接记录在成员变量中 ; 在 【Android 屏幕适配】屏幕适配通用解决方案...float REFERENCE_HEIGHT = 1232; 屏幕布局宽度 , 在 【Android 屏幕适配】屏幕适配通用解决方案 ③ ( 自定义组件解决方案 | 获取设备状态栏高度 | 获取设备屏幕数据...screenWidth; 屏幕布局高度 , 在 【Android 屏幕适配】屏幕适配通用解决方案 ③ ( 自定义组件解决方案 | 获取设备状态栏高度 | 获取设备屏幕数据 ) 二、获取设备屏幕数据 博客章节完成了对应数据的计算
:Android 屏幕适配 鸿洋:Android 屏幕适配方案 凯子: Android屏幕适配全攻略(最权威的官方适配指导) 自身的思考&实践 给你带来一种全新、全面而逻辑清晰的Android屏幕适配思路...”匹配不同的屏幕密度 解决方案 问题:如何进行屏幕尺寸匹配?...但是LinearLayout无法准确地控制子视图之间的位置关系,只能简单的一个挨着一个地排列 所以,对于屏幕适配来说,使用相对布局(RelativeLayout)将会是更好的解决方案 本质2:根据屏幕的配置来加载相应的...UI资源 使用场景 你需要为标准 7 英寸平板电脑匹配双面板布局(其最小宽度为 600 dp),在手机(较小的屏幕上)匹配单面板布局 解决方案:您可以使用上文中所述的单面板和双面板这两种布局,但您应使用...总结 经过上面的介绍,对于屏幕尺寸大小适配问题应该是不成问题了。 解决方案 问题:如何进行屏幕密度匹配?
" content="email=no" /> 当网站添加到主屏幕快速启动方式,可隐藏地址栏,仅针对ios的safari <meta name="apple-mobile-web-app-capable...touch事件 以下支持webkit 描述 touchstart 当手指触碰屏幕时候发生。...例如在触摸过程中突然页面alert()一个提示框,此时会触发该事件,这个事件比较少用,以下支持winphone 8 MSPointerDown 当手指触碰屏幕时候发生。...设置它隐藏 (display:none) 并使用背景图片来修饰可得到我们想要的效果。...,软键盘弹出时,影响fixed元素定位 android下fixed表现要比iOS更好,软键盘弹出时,不会影响fixed元素定位 ios4下不支持position:fixed 解决方案 可用isroll.js
文章目录 一、自定义组件解决方案 二、需要解决的问题 : 设计稿坐标数据转为屏幕真实坐标数据 三、实现步骤 参考文档 : 设备兼容性概览 屏幕兼容性概览 支持不同的像素密度 声明受限屏幕支持 一、自定义组件解决方案...---- 使用的 dimens.xml 配置的方式 实现 屏幕适配 , 在 开发时 就 事先将对应屏幕分辨率的值换算好 并 配置到 dimens.xml 文件 中 , 在程序运行时只需要直接调用即可..., 不需要消耗资源进行额外的计算 ; 自定义组件解决方案 实现 屏幕适配 , 是在 应用运行过程中 , 自定义组件的 onMeasure 测量方法中 , 按照组件的比例进行缩放 ; 自定义组件 在 onMeasure...方法中 , 只需要将 该 自定义 ViewGroup 组件 下的 子组件 逐个遍历 , 根据当前 设备的屏幕像素属性 修改子组件的 宽高 和 位置 的像素数据 ; 二、需要解决的问题 : 设计稿坐标数据转为屏幕真实坐标数据..., 对应 手机屏幕中除 状态栏之外的 布局 , 需要完成如下操作 : 首先 , 要 获取到实际的设备屏幕数据 , 如 手机屏幕实际宽高 , 屏幕像素密度 DPI 等数据 ; 然后 , 计算实际设备的宽高
0x00 基本介绍 自助终端设备是将触控屏和相关系统软件进行结合,再配以相关功能与服务的一种电子终端设备。...Android这两种,也有少数的Linux系统。...根据提供的功能服务采用不同的操作系统,比如常见的一些自动售货机、贩卖机大都使用Android系统,系统之上安装服务应用APK。然后通过禁用和隐藏Android导航栏和通知菜单的手段防止用户跳出应用。...首先是实现交互功能的红外线技术触控屏,有的支持单点触控,有的支持多点触控,很容易判断。另外有些自助终端设备还带有物理键盘或者小型的定制键盘,比如常见的ATM机。...触控手势 有的设备会使用Windows的平板模式或者Android系统的横屏模式,可以使用一些常见的手势操作,如果没有屏蔽的话,会有意想不到的惊喜。
Android 禁止屏幕旋转 //全屏显示 的部分 body 隐藏。...解决方案: fastclick可以解决在手机上点击事件的300ms延迟 zepto的touch模块,tap事件也是为了解决在click的延迟问题 触摸事件的响应顺序 ontouchstart ontouchmove...将日期字符串的格式符号替换成'/' 'yyyy-MM-dd'.replace(/-/g, '/') 软键盘问题 IOS 键盘弹起挡住原来的视图 可以通过监听移动端软键盘弹起 Element.scrollIntoViewIfNeeded...window.addEventListener('focusout', function() { window.scrollTo(0, 0) }) //input输入框弹起软键盘的解决方案。
有下列几种取值定义:"未定义", "未隐藏或软键盘", "已隐藏", "软键盘" hardKeyboardHidden : 物理键盘状态。...有下列几种取值定义:"未定义", "未隐藏", "已隐藏" orientation : 屏幕方向。...app运行时,Android会根据当前的屏幕方向,自动选择对应目录下的布局。...获取屏幕分辨率的详细说明参见《Android开发笔记(三)屏幕分辨率》。...点击下载本文用到的屏幕规格适配的工程代码 点此查看Android开发笔记的完整目录
领取专属 10元无门槛券
手把手带您无忧上云