手势识别=读取手机联系人=ContentResolver-Day3
手势识别=读取手机联系人=ContentResolverDay32
mobile3.0
- 手机设置向导页面
完成 - 选择器没有做
完成 - 样式提取
完成 - 自定义控件的优化
继续 - 抽取父类
Activity完成 - 手机读取联系人。
问题堆栈
- 自定义控件深入理解自定义
ListView - 是时候研究框架和设计
XUtils4个模块 - 明天仔细研究窗口过度动画。
4. 手势控制GestureDetector
手势在
Activity里面有一个onTouchEvent(MotionEvent event)方法,参数就是用户在屏幕上面的作用的是贱,MOtionEvent封装了许多手势定义的方法,我们通过定义GenntureDetector,监听SimpleOnGestureListener监听器中的onFing(....)滑动方法,具体实现如下
// 创建该Activity的时候
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
context = this;
requestWindowFeature(Window.FEATURE_NO_TITLE);
// 创建一个手势识别器
mGestureDetector = new GestureDetector(this, new SimpleOnGestureListener()
{
/*
* e1 表示第一次触摸事件, e2表示手纸离开时的事件 x 水平方向的速度 y,表示束值方向的速度
*/
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)
{
// 如果监听成功返回true,监听失败返回false;
if (Math.abs(velocityX) < 100)
{
// pis/s 表示单位时间内划过的速度太慢
ToastUtil.show(context, "下一页请滑动快一点");
return true;
}
if (e1.getRawX() - e2.getRawX() > 200)
{
showNext();
overridePendingTransition(R.anim.tran_in, R.anim.tran_out);
return true;
}
if (e2.getRawX() - e1.getRawX() > 200)
{
showPre();
overridePendingTransition(R.anim.tran_in_pre, R.anim.tran_out_pre);
return true;
}
return super.onFling(e1, e2, velocityX, velocityY);
}
// 长按的监听
@Override
public void onLongPress(MotionEvent e)
{
new AlertDialog.Builder(context).setIcon(R.drawable.btn_check_off)
.setTitle("你长按了我的屏幕").setMessage("我很想知道你是想干嘛!").create().show();
}
});
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
mGestureDetector.onTouchEvent(event);
// TODO Auto-generated method stub
return super.onTouchEvent(event);
}
- 动画设计
- 广播接收器复习
ViewPage,Pargment优化完成一半。晚上继续资料ViewPage是V4包里面的一个控件,如何更好的和Pargment使用需要一段时间的研究当中,我们会在晚上加油更努力的去学习。晚上录传智视频
自定义控件深入理解自定义ListView
ContentResolver类
这个类主要是Android用来实现数据共享的,一个应用程序可以将自己的数据完全暴露出去,靠的就是这个类,里面提供了。delete(),insert(),upDate,query()的方法。原理是什么?现在还不是太理解
心得
- 深一定要深入一点。
- 那一天花一早上的时间来研究界面设计
- 俩人1.0
- 看博客的时候一定要自己做总结笔记。效率才会高
准备设计一个发祝福短信的应用。Phone1.0
1.读取到你要发的人的名字。在短信前面会家乡个你存的电话的名字。这样可以假装你不是群发的。
手势识别=读取手机联系人=ContentResolver-Day3的更多相关文章
- Android 读取手机联系人、拨号、发送短信及长按菜单的操作
本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要 ...
- 读取手机联系人,并用listview显示
读取手机联系人,用到的就是一个contentprovider. 数据库里面有三张重要的表 raw_contact 里面有所有联系人的数据 data 每个联系人的所有数据 mime-type 每条数据的 ...
- Android使用READ_CONTACTS读取手机联系人
实例代码: package com.example.readcontacts; import java.io.InputStream; import java.util.ArrayList; impo ...
- Android项目——读取手机联系人信息
加入读取联系人信息的权限 <uses-permission android:name="android.permission.READ_CONTACTS"/> cont ...
- android131 360 05 手势触摸滑动,sim卡,开机启动的广播,手机联系人,SharedPreferences,拦截短信
安卓手势触摸滑动: package com.itheima52.mobilesafe.activity; import android.app.Activity; import android.con ...
- android利用ContentResolver访问者获取手机联系人信息
转载自:http://www.jb51.net/article/106379.htm 首先需要在AndroidManifest.xml文件中添加权限: <uses-permission andr ...
- Android-AsyncTask异步任务(获取手机联系人)
本篇随笔将讲解一下Android的多线程的知识,以及如何通过AsyncTask机制来实现线程之间的通信. 一.Android当中的多线程 在Android当中,当一个应用程序的组件启动的时候,并且没有 ...
- android: 通过内容提供器读取系统联系人
读取系统联系人 由于我们之前一直使用的都是模拟器,电话簿里面并没有联系人存在,所以现在需要自 己手动添加几个,以便稍后进行读取.打开电话簿程序,界面如图 7.1 所示. 图 7.1 可以看到,目前 ...
- 玩爆你的手机联系人--T9搜索(一)
自己研究了好几天联系人的T9搜索算法, 先分享出来给大家看看. 欢迎不吝赐教.假设有大神有更好的T9搜索算法, 那更好啊,大家一起研究研究,谢谢. 第一部分是比較简单的获取手机联系人. 获取 ...
随机推荐
- HDU 5943 Kingdom of Obsession 【二分图匹配 匈牙利算法】 (2016年中国大学生程序设计竞赛(杭州))
Kingdom of Obsession Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Oth ...
- Linux内核学习笔记1——系统调用原理【转】
1什么是系统调用 系统调用,顾名思义,说的是操作系统提供给用户程序调用的一组“特殊”接口.用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文 ...
- [leetcode]二分查找总结
Search for a Range 1.最简单的想法,用最普通的二分查找,找到target,然后向左右扩张,大量的重复的target,就会出现O(n)效率. class Solution { pub ...
- [LeetCode] Decode Ways 解题思路
A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' - ...
- python-面向对象(一)——开篇基础
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计) 一.创建类和对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现, ...
- linux 下信号处理命令trap && linux下各种信号的意义
1.用途说明 trap是一个shell内建命令,它用来在脚本中指定信号如何处理.比如,按Ctrl+C会使脚本终止执行,实际上系统发送了SIGINT信号给脚本进程,SIGINT信号的默认处理方式就是退出 ...
- Javascript数据类型——undefined和null的异同
Javascript的基本数据类型中有undefined和null两种只有一个值得特殊数据类型.其中undefined表示未被初始化,不是为声明.而null表示一个空对象指针,而这也是使用typeof ...
- Android——C语言、JNI与低层调用
JNI java native interface c的基本数据类型 int:32位,能表示的数字是2的32次方个 最高位用来表示符号位,那么还剩下31位可以表示数值,所以能表示的数字就是2的31次方 ...
- 如何在ubuntu下使用stage3d的硬件加速
最近想尝试一下心动的新游戏深渊,但是由于公司的电脑是ubuntu的,只要进游戏就提示说没有stage3d的硬件加速,于是google了一下,发现这么一篇文章 http://phoronix.com/f ...
- Material Design之TextInputLayout、Snackbar的使用
这两个控件也是Google在2015 I/O大会上公布的Design Library包下的控件,使用比較简单,就放在一起讲了,但有的地方也是须要特别注意一下. TextInputLayout Text ...