WindowManager之实现类似360桌面悬浮物
来源:互联网 发布:html获取form表单数据 编辑:程序博客网 时间:2024/05/19 17:57
直接上代码
public class WindowMangerTestActivityaa extends Activity {
float rawX;
float rawY;
float xx = 0.0f;
float yy = 0.0f;
WindowManager manager;
WindowManager.LayoutParams params;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.main);
final TextView tv = new TextView(this);
manager = (WindowManager) getApplicationContext().getSystemService(
Context.WINDOW_SERVICE);
params = new WindowManager.LayoutParams();
params.x = 0;
params.y = 0;
tv.setBackgroundColor(Color.WHITE);
tv.setTextColor(Color.BLACK);
tv.setText("adfasdfsdf");
params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
params.alpha = 0.5f;
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
| WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
params.format = 1;
params.gravity = Gravity.LEFT| Gravity.TOP;
params.height = 80;
params.width = 80;
manager.addView(tv, params);
tv.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
rawX = event.getRawX();
rawY = event.getRawY();
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
xx = event.getX();
yy = event.getY();
break;
case MotionEvent.ACTION_MOVE:
params.x = (int) (rawX - xx);
params.y = (int) (rawY - yy);
manager.updateViewLayout(tv, params);
break;
default:
break;
}
// TODO Auto-generated method stub
return true;
}
});
}
}
请注意
1.getSystemService之前的那个getApplicationContext是必须的,一般情况下,大家可能会运用this(我也是),用了this之后导致,textview只能在当前的activity上显示,返回之后textview消失
2.params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;否则textview是拖不动的。
3.在AndroidManifest.xml中添加权限<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
4.在AndroidManifest.xml中的Activity节点属性中添加android:theme="@android:style/Theme.NoDisplay"
- WindowManager之实现类似360桌面悬浮物
- WindowManager之实现类似360桌面悬浮物
- DELPHI实现类似仿360桌面的程序界面
- DELPHI实现类似仿360桌面的程序界面
- 安卓-使用WindowManager实现类似Toast效果
- Amdroid之系统桌面悬浮框(WindowManager)
- 实现类似launcher的滑动桌面
- Android实现桌面歌词(类似TTPlayer)
- ActionScript 实现弹出窗口,类似桌面软件
- Fedora19添加桌面系统,实现类似windows桌面
- Android之悬浮窗口实现(WindowManager)
- Android之悬浮窗口实现(WindowManager)
- Android之WindowManager实现悬浮按钮
- Android之悬浮窗口实现(WindowManager)
- vc++中如何实现类似fences软件中的栅栏桌面
- 用CSS3实现类似苹果桌面的有趣抖动效果
- MFC定时器实现类似QQ桌面自动隐藏效果
- android Viewpager 左右滑动类似桌面的实现
- 利用HttpURLConnection对象和Internet交互
- 国内外的php框架(胡乱整理)
- 在Linux下玩魔兽争霸——wine配置
- INSTR
- 排错点点滴滴
- WindowManager之实现类似360桌面悬浮物
- Ubuntu开机时实现自动挂载Windows下分区
- 用C语言实现Ping程序功能
- silverlight大全
- C实现ping功能的函数注释改写版
- RC5加密算法
- 如果是癌症吃了就不死,可惜我们知道的太晚了
- selenium知识点
- 华为C8500中文Recovery版本2.5.0.9刷机程序以及教程!----转自IOZ9大神的博客