当前位置: 编程技术>移动开发
本页文章导读:
▪写在20120229:多点触控,银屏缩略图 写在20120229:多点触控,屏幕缩略图
目前手机应用已经越来越多的用到了手势,其中Launcher中大家比较熟悉的就是屏幕缩略图,那么简单的实现就需要了解之前的那篇博客,关于ViewGro.........
▪ 写在20120410:PopupWindow施用报错 写在20120410:PopupWindow使用报错
在使用PopupWindow时报如下错误:android.view.WindowManager$BadTokenException: Unable to add window token null……PopupWindow必须在某个事件中显示或者是开启一个新线程去调用.........
▪ Window Phone 七开发环境的配置 Window Phone 7开发环境的配置
http://blog.csdn.net/wjky2014/article/details/8615237这里的文章写的不错,,我试过完全ok
......
[1]写在20120229:多点触控,银屏缩略图
来源: 互联网 发布时间: 2014-02-18
写在20120229:多点触控,屏幕缩略图
目前手机应用已经越来越多的用到了手势,其中Launcher中大家比较熟悉的就是屏幕缩略图,那么简单的实现就需要了解之前的那篇博客,关于ViewGroup和View的触屏事件的描述,这里也用到了比较重要的两个方法。onInterceptTouchEvent()和onTouchEvent()。
熟悉Launcher的人都会知道源码中会有一个DragLayer类,这个DragLayer是覆盖在WorkSpace上面的一层拖动层,那么要实现两只手指呈“捏”的手势,形成屏幕缩略图就得从该类做文章,重写onInterceptTouchEvent()、onTouchEvent()。
@override
public boolean onInterceptTouchEvent(MotionEvent ev){
if(ev.getPointerCount() == 2&&当前Launcher的一些拖动和显示状态符合生成缩略图){
switch(ev.getAction()& MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_POINTER_DOWN:
twoPointDis = (int)distance(ev);
setLinearEquation(ev);
}
showThumbnail = true;
return true;
}
showThumbnail = false;
//接下来处理不是两手捏的触屏之外的事件。
}
@override
public boolean onTouchEvent(MotionEvent ev){
int action = ev.getAction();
int x = (int) ev.getX();
int y = (int) ev.getY();
if(showThumbnail && ev.getPointerCount() == 2){
int dis;
switch(ev.getAction()& MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_MOVE:
dis=distance(ev);
if((twoPointDis - dis)>生成缩略图最小阈值(80像素,捏的时候移动的距离)&& 当前Launcher的一些拖动和显示状态符合生成缩略图)
thumbnailShow();//包括生成时的动画
else if(((twoPointDis - dis)<-生成缩略图最小阈值(80像素,捏的时候移动的距离)&& 当前Launcher的一些拖动和显示状态符合生成缩略图)
//根据选择的缩略图某一屏返回到workspace
}
return true;
}
showThumbnail = false;
//接下来处理不是两手捏的触屏之外的事件。
}
private int setLinearEquation(MotionEvent ev){
float x0 = ev.getX(0);
float x1 = ev.getX(1);
float y0 = ev.getY(0);
float y1 = ev.getY(1);
slop = (y1-y0)/(x1-x0);
y = (int) (y0-slop*x0);
}
private int distance(MotionEvent ev){
if(ev.getPointerCount()>1){
float x = ev.getX(0)-ev.getX(1);
float y = ev.getY(0)-ev.getY(1)
return (int)Math.sqrt(x*x+y*y);
}else{
return 1;
}
}
目前手机应用已经越来越多的用到了手势,其中Launcher中大家比较熟悉的就是屏幕缩略图,那么简单的实现就需要了解之前的那篇博客,关于ViewGroup和View的触屏事件的描述,这里也用到了比较重要的两个方法。onInterceptTouchEvent()和onTouchEvent()。
熟悉Launcher的人都会知道源码中会有一个DragLayer类,这个DragLayer是覆盖在WorkSpace上面的一层拖动层,那么要实现两只手指呈“捏”的手势,形成屏幕缩略图就得从该类做文章,重写onInterceptTouchEvent()、onTouchEvent()。
@override
public boolean onInterceptTouchEvent(MotionEvent ev){
if(ev.getPointerCount() == 2&&当前Launcher的一些拖动和显示状态符合生成缩略图){
switch(ev.getAction()& MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_POINTER_DOWN:
twoPointDis = (int)distance(ev);
setLinearEquation(ev);
}
showThumbnail = true;
return true;
}
showThumbnail = false;
//接下来处理不是两手捏的触屏之外的事件。
}
@override
public boolean onTouchEvent(MotionEvent ev){
int action = ev.getAction();
int x = (int) ev.getX();
int y = (int) ev.getY();
if(showThumbnail && ev.getPointerCount() == 2){
int dis;
switch(ev.getAction()& MotionEvent.ACTION_MASK){
case MotionEvent.ACTION_MOVE:
dis=distance(ev);
if((twoPointDis - dis)>生成缩略图最小阈值(80像素,捏的时候移动的距离)&& 当前Launcher的一些拖动和显示状态符合生成缩略图)
thumbnailShow();//包括生成时的动画
else if(((twoPointDis - dis)<-生成缩略图最小阈值(80像素,捏的时候移动的距离)&& 当前Launcher的一些拖动和显示状态符合生成缩略图)
//根据选择的缩略图某一屏返回到workspace
}
return true;
}
showThumbnail = false;
//接下来处理不是两手捏的触屏之外的事件。
}
private int setLinearEquation(MotionEvent ev){
float x0 = ev.getX(0);
float x1 = ev.getX(1);
float y0 = ev.getY(0);
float y1 = ev.getY(1);
slop = (y1-y0)/(x1-x0);
y = (int) (y0-slop*x0);
}
private int distance(MotionEvent ev){
if(ev.getPointerCount()>1){
float x = ev.getX(0)-ev.getX(1);
float y = ev.getY(0)-ev.getY(1)
return (int)Math.sqrt(x*x+y*y);
}else{
return 1;
}
}
[2] 写在20120410:PopupWindow施用报错
来源: 互联网 发布时间: 2014-02-18
写在20120410:PopupWindow使用报错
在使用PopupWindow时报如下错误:
android.view.WindowManager$BadTokenException: Unable to add window token null……
PopupWindow必须在某个事件中显示或者是开启一个新线程去调用,不能直接在onCreate方法中显示一个PopupWindow,否则永远会报错。
在使用PopupWindow时报如下错误:
android.view.WindowManager$BadTokenException: Unable to add window token null……
PopupWindow必须在某个事件中显示或者是开启一个新线程去调用,不能直接在onCreate方法中显示一个PopupWindow,否则永远会报错。
[3] Window Phone 七开发环境的配置
来源: 互联网 发布时间: 2014-02-18
Window Phone 7开发环境的配置
http://blog.csdn.net/wjky2014/article/details/8615237
这里的文章写的不错,,我试过完全ok
http://blog.csdn.net/wjky2014/article/details/8615237
这里的文章写的不错,,我试过完全ok
最新技术文章: