关于锤子的OneStep和Bigbang的猜想

锤子发布会中提到的两个杀手级功能让我这个十分初级的Android开发者产生了一些思考,那就是这两个功能是如何实现的?
这两个功能应该属于系统级的功能,手指接触屏幕的区域大小让我想到之前看过的一篇关于Android触摸事件的文章,其中提到了Android有关于触摸区域大小的Api,接下来找到了一篇2013年的博客

  1. MotionEvent的几个函数
    下面的方法都支持多点触摸,即可以对单个触摸点调用下面的方法
    1.1 getPressure()
    这个api 可以获取到手指触摸屏幕时候的压力,但是需要硬件和驱动支持...
    它有助于我们做出更加拟物化的设计,比如:

  2. 手绘。可以根据手指压力更好地模拟画笔的出息和颜色的深浅,让人感觉更真实。

  3. 对控件的点击操作。 可以根据手指压力来设置控件(如按钮)的pressed效果,比如下凹的幅度。

  4. 新操作方式。及手指不离开屏幕,通过调整手指压力来达到操作目的,比如模拟汽车加油门
    1.2 getSize()
    获取手指触摸屏幕时与屏幕的接触面积
    这个可以用来识别fattouch events,也就是很大面积的触摸事件,这个时候往往有可能是用户的误操作。
    1.3 getToolType()
    获取触发当前事件的物体类型:手指、触控笔或者鼠标(触控版)
    这个我也没想到有啥用处。。。

  5. ClipData
    ClipData.addItem(ClipData.Item item)
    这个api可以将文本、资源地址和Intent放在一个ClipData对象里面,然后保存在系统的剪切板中,而系统的剪切板是可以跨应用程序传递数据的,因此可以支持以下功能:

  6. 跨应用程序复制、粘贴各种文件(图片、视频)等,类似windows的剪切板。

  7. 由于资源地址可以是本地或者来自网络,因此还可以直接copy网络端的资源,类似于PC端的有道云笔记,直接将网页的内容copy到本地。ClipData本身已经支持带HTML标签的格式化文本了。。

  8. 直接copy应用程序的快捷方式,Intent就相当于启动一个界面的快捷方式,因此理论上讲可以copy跳转到应用程序任何界面的快捷方式,比如拨打某人的电话,发起和某人的视频聊天。

1.3 Vibrator
Vibrator.vibrate (long[] pattern, intrepeat)
这个api可以控制震动马达的节奏,可以支持一下功能:

  1. 让用户自定义震动节奏,iOS已经有这个功能了。
  2. 内置几套震动节奏,和闹铃铃音配合好,增加趣味性。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,385评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,245评论 4 61
  • 《爱情》 昨天,和一个朋友聊天,不知怎么聊起了他和他女朋友的事情,其实他和他女朋友分手也有一段时间了,我和他是...
    清風傲骨阅读 514评论 0 0
  • 我有一个秘密 和好多朋友说过 唯独没有对你说 直到你说要结婚了 不说也许这辈子都不会说了吧 说了也许是我的罪过吧 ...
    子非玉9527阅读 151评论 0 0