android 悬浮窗学习笔记
来源:互联网 发布:知所不知 编辑:程序博客网 时间:2024/04/27 19:25
本文代码例子下载:http://pan.baidu.com/s/1cf9hD
package com.phicomm.hu;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.graphics.PixelFormat;import android.os.Bundle;import android.util.Log;import android.view.Gravity;import android.view.LayoutInflater;import android.view.MotionEvent;import android.view.View;import android.view.WindowManager;import android.view.View.OnClickListener;import android.view.View.OnTouchListener;import android.view.WindowManager.LayoutParams;import android.widget.Button;import android.widget.LinearLayout;public class FloatWindowTest extends Activity { /** Called when the activity is first created. */private static final String TAG = "FloatWindowTest";WindowManager mWindowManager;WindowManager.LayoutParams wmParams;LinearLayout mFloatLayout;Button mFloatView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //createFloatView(); setContentView(R.layout.main); Button start = (Button)findViewById(R.id.start); Button stop = (Button)findViewById(R.id.stop); start.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v){// TODO Auto-generated method stubcreateFloatView();//finish();//handle.post(r);}}); stop.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif(mFloatLayout != null){mWindowManager.removeView(mFloatLayout);finish();}}}); } private void createFloatView() { //获取LayoutParams对象 wmParams = new WindowManager.LayoutParams(); //获取的是LocalWindowManager对象 mWindowManager = this.getWindowManager(); Log.i(TAG, "mWindowManager1--->" + this.getWindowManager()); //mWindowManager = getWindow().getWindowManager(); Log.i(TAG, "mWindowManager2--->" + getWindow().getWindowManager()); //获取的是CompatModeWrapper对象 //mWindowManager = (WindowManager) getApplication().getSystemService(Context.WINDOW_SERVICE); Log.i(TAG, "mWindowManager3--->" + mWindowManager); wmParams.type = LayoutParams.TYPE_PHONE; wmParams.format = PixelFormat.RGBA_8888;; wmParams.flags = LayoutParams.FLAG_NOT_FOCUSABLE; wmParams.gravity = Gravity.LEFT | Gravity.TOP; wmParams.x = 0; wmParams.y = 0; wmParams.width = WindowManager.LayoutParams.WRAP_CONTENT; wmParams.height = WindowManager.LayoutParams.WRAP_CONTENT; LayoutInflater inflater = this.getLayoutInflater();//LayoutInflater.from(getApplication()); mFloatLayout = (LinearLayout) inflater.inflate(R.layout.float_layout, null); mWindowManager.addView(mFloatLayout, wmParams); //setContentView(R.layout.main); mFloatView = (Button)mFloatLayout.findViewById(R.id.float_id); Log.i(TAG, "mFloatView" + mFloatView); Log.i(TAG, "mFloatView--parent-->" + mFloatView.getParent()); Log.i(TAG, "mFloatView--parent--parent-->" + mFloatView.getParent().getParent()); //绑定触摸移动监听 mFloatView.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubwmParams.x = (int)event.getRawX() - mFloatLayout.getWidth()/2;//25为状态栏高度wmParams.y = (int)event.getRawY() - mFloatLayout.getHeight()/2 - 40;mWindowManager.updateViewLayout(mFloatLayout, wmParams);return false;}}); //绑定点击监听 mFloatView.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent = new Intent(FloatWindowTest.this, ResultActivity.class);startActivity(intent);}}); }}
- android 悬浮窗学习笔记
- 【笔记】Android悬浮窗使用兼容6.0
- 【Android 学习】实现仿360悬浮窗
- Android悬浮框应用--悬浮笔记
- Android学习 - 悬浮控件
- 安卓学习笔记---Android实现页面悬浮显示
- Android开发笔记(一百一十八)自定义悬浮窗
- Android悬浮窗功能
- Android桌面悬浮窗
- android 悬浮窗
- Android悬浮窗
- android悬浮窗相关
- android 悬浮窗
- android 悬浮窗 1
- android 悬浮窗 2
- android 悬浮窗 3
- android 悬浮窗
- android 弹出式悬浮窗
- java的技术要求!
- CONTENT-TYPE类型一览表
- C++ opencv小试4
- 快速排序
- 让IE浏览器支持HTML5标准的方法
- android 悬浮窗学习笔记
- http Keep-Alive 学习
- leetcode Remove Duplicates from Sorted List II
- java之多线程研究(一)
- C++ LRU Cache
- 我精心整理的一些大牌男装正品店
- 单片机 EEPROM
- ubuntu远程桌面
- PHP - 2. 基础概念