电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

Android中可自由移动悬浮窗口的实现

Android中可自由移动悬浮窗口的实现_第1页
1/6
Android中可自由移动悬浮窗口的实现_第2页
2/6
Android中可自由移动悬浮窗口的实现_第3页
3/6
大家对悬浮窗概念不会陌生,相信每台电脑桌面的右上角都会有这么一个东西,它总是出现在所有页面的顶端(Top Show)。但在Android平台中如何实现这样的效果呢?先来看一看效果图。 看见在Google 搜索框上面的那个Icon 图片了嘛。下面我就来详细介绍一下在Android 平台下悬浮窗口的实现,并让它能够随手指的触摸而移动。 一、实现原理及移动思路 调用 WindowManager,并设置 WindowManager.LayoutParams 的相关属性,通过 WindowManager 的addView 方法创建 View,这样产生出来的View 根据 WindowManager.LayoutParams 属性不同,效果也就不同了。比如创建系统顶级窗口,实现悬浮窗口效果!然后通过覆写悬浮View中onTouchEvent 方法来改变 windowMananager.LayoutParams 中x和 y的值来实现自由移动悬浮窗口。 二、示例代码 先来看一看悬浮View 的代码,这里用一个ImageView 作为演示 [java] view plaincopyprint? 1. public class MyFloatView extends ImageView { 2. private float mTouchStartX; 3. private float mTouchStartY; 4. private float x; 5. private float y; 6. 7. private WindowManager wm=(WindowManager)getContext().getApplicationContext().getSystemService("window"); 8. //此 wmParams 变量为获取的全局变量,用以保存悬浮窗口的属性 9. private WindowManager.LayoutParams wmParams = ((MyApplication)getContext().getApplicationContext()).getMywmParams(); 10. 11. public MyFloatView(Context context) { 12. super(context); 13. // TODO Auto-generated constructor stub 14. } 15. 16. @Override 17. public boolean onTouchEvent(MotionEvent event) { 18. //获取相对屏幕的坐标,即以屏幕左上角为原点 19. x = event.getRawX(); 20. y = event.getRawY()- 25; //25 是系统状态栏的高度 21. Log.i("currP", "currX"+x+"====currY"+y); 22. switch (event.getAction()) { 23. case MotionEvent.ACTION_DOWN: // 捕获手指触摸按下动作 24. //获取相对View 的坐标,即以此View 左上角为原点 25. mTouchStartX = event.getX(); 26. mTouchStartY = event.getY(); 27. Log.i("startP", "startX"+mTouchStartX+"====startY"+mTouchStartY); 28. break; 29. 30. case Mot...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

Android中可自由移动悬浮窗口的实现

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部