- 浏览: 634409 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (314)
- 生活 (2)
- c# (37)
- 技术 (3)
- 400电话 (0)
- 400常见问题 (0)
- 400资费 (0)
- html (7)
- css (0)
- 数据库 (7)
- javascript (16)
- php (33)
- asp.net mvc2 (10)
- mysql (9)
- C# 3.0 LinQ (10)
- vs2005或vs2008 (4)
- flash and as3 (7)
- fms (1)
- dedeCMS (11)
- java (33)
- j2me (1)
- swing (1)
- c++ (1)
- jquery easyui (3)
- jquery (5)
- android (29)
- MongoDB (9)
- VtigerCRM (1)
- test (0)
- linux (30)
- nutch (2)
- SqlServer数据库 (2)
- 数据检索 (2)
- java抓取 (11)
- 乐天 (1)
- 淘宝 (1)
- Silverlight4.0 (6)
- sphinx实时索引 (5)
- ecshop (9)
- codeigniter(CI) (3)
- axure6 (1)
- 京东店铺装修教程 (2)
- xpath (1)
- joomla (2)
- bpm (1)
- Bootstrap (2)
- knockout (4)
- ecstore (4)
- css3 (1)
- 微信 (2)
- dede (0)
- soa_edi (1)
- odoo (0)
- web (1)
最新评论
-
骑着蜗牛超F1:
在ie6下报了个stack overflow at line ...
兼容ie6和ie7 的16进制码流在html中显示为图片代码(base64) -
冰之海洋:
好像少了一句代码吧? FloatingFunc.show(th ...
android 一直在最前面的浮动窗口效果 -
yanzhoupuzhang:
连接有问题!
iis7.0官方下载 IIS 7.0(微软Web服务器组件IIS 7.0) 官方(windows 2003,XP,2000) -
whatable:
唉,楼主你都没有搞清楚重量级和轻量级。。。。既然引用了SWT, ...
java swing 内置浏览器打开网页显示flash图表-swt Browser应用 -
yy_owen:
我晕啊,你链接的什么内容额,我要的iis,你链接个视频什么意思 ...
iis7.0官方下载 IIS 7.0(微软Web服务器组件IIS 7.0) 官方(windows 2003,XP,2000)
今天发现一些软件可以在android 的桌面上显示一些浮动小窗口,经过一番查找,终于找到的解决方案,代码如下:
FloatingFunc.java
package hrxcframe.comm;
import android.app.Activity;
import android.content.Context;
import android.graphics.Rect;
import android.test.R;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.WindowManager.LayoutParams;
/**
* 可以永远显示在android屏幕最上方的浮动菜单
*
* @author liujl v1.0 需要添加 <uses-permission
* android:name="android.permission.SYSTEM_ALERT_WINDOW"
* /><!--系统弹出窗口权限-->权限不然会报错
*/
public class FloatingFunc {
/**
* 浮动窗口在屏幕中的x坐标
*/
private static float x = 0;
/**
* 浮动窗口在屏幕中的y坐标
*/
private static float y = 200;
/**
* 屏幕触摸状态,暂时未使用
*/
private static float state = 0;
/**
* 鼠标触摸开始位置
*/
private static float mTouchStartX = 0;
/**
* 鼠标触摸结束位置
*/
private static float mTouchStartY = 0;
/**
* windows 窗口管理器
*/
private static WindowManager wm = null;
/**
* 浮动显示对象
*/
private static View floatingViewObj = null;
/**
* 参数设定类
*/
public static WindowManager.LayoutParams params = new WindowManager.LayoutParams();
public static int TOOL_BAR_HIGH = 0;
/**
* 要显示在窗口最前面的对象
*/
private static View view_obj = null;
/**
* 要显示在窗口最前面的方法
*
* @param context
* 调用对象Context getApplicationContext()
* @param window
* 调用对象 Window getWindow()
* @param floatingViewObj
* 要显示的浮动对象 View
*/
public static void show(Context context, Window window, View floatingViewObj) {
// 加载xml文件中样式例子代码
// ********************************Start**************************
// LayoutInflater inflater =
// LayoutInflater.from(getApplicationContext());
// View view = inflater.inflate(R.layout.topframe, null);
// wm =
// (WindowManager)context.getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
// 加载xml文件中样式例子代码
// *********************************End***************************
//
// 关闭浮动显示对象然后再显示
close(context);
FloatingFunc.floatingViewObj = floatingViewObj;
view_obj = floatingViewObj;
Rect frame = new Rect();
// 这一句是关键,让其在top 层显示
// getWindow()
window.getDecorView().getWindowVisibleDisplayFrame(frame);
TOOL_BAR_HIGH = frame.top;
wm = (WindowManager) context// getApplicationContext()
.getSystemService(Activity.WINDOW_SERVICE);
params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
| WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY;
params.flags = LayoutParams.FLAG_NOT_TOUCH_MODAL
| LayoutParams.FLAG_NOT_FOCUSABLE;
// 设置悬浮窗口长宽数据
params.width = WindowManager.LayoutParams.WRAP_CONTENT;
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
// 设定透明度
params.alpha = 80;
// 设定内部文字对齐方式
params.gravity = Gravity.LEFT | Gravity.TOP;
// 以屏幕左上角为原点,设置x、y初始值ֵ
params.x = (int) x;
params.y = (int) y;
// tv = new MyTextView(TopFrame.this);
wm.addView(floatingViewObj, params);
}
/**
* 跟谁滑动移动
*
* @param event
* 事件对象
* @param view
* 弹出对象实例(View)
* @return
*/
public static boolean onTouchEvent(MotionEvent event, View view) {
// 获取相对屏幕的坐标,即以屏幕左上角为原点
x = event.getRawX();
y = event.getRawY() - 25; // 25是系统状态栏的高度
Log.i("currP", "currX" + x + "====currY" + y);// 调试信息
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
state = MotionEvent.ACTION_DOWN;
// panTime();
// 获取相对View的坐标,即以此View左上角为原点
mTouchStartX = event.getX();
mTouchStartY = event.getY();
Log.i("startP", "startX" + mTouchStartX + "====startY"
+ mTouchStartY);// 调试信息
break;
case MotionEvent.ACTION_MOVE:
state = MotionEvent.ACTION_MOVE;
updateViewPosition(view);
break;
case MotionEvent.ACTION_UP:
state = MotionEvent.ACTION_UP;
updateViewPosition(view);
mTouchStartX = mTouchStartY = 0;
break;
}
return true;
}
/**
* 关闭浮动显示对象
*/
public static void close(Context context) {
if (view_obj != null && view_obj.isShown()) {
WindowManager wm = (WindowManager) context
.getSystemService(Activity.WINDOW_SERVICE);
wm.removeView(view_obj);
}
}
/**
* 更新弹出窗口位置
*/
private static void updateViewPosition(View view) {
// 更新浮动窗口位置参数
params.x = (int) (x - mTouchStartX);
params.y = (int) (y - mTouchStartY);
wm.updateViewLayout(FloatingFunc.floatingViewObj, params);
}
}
测试代码,放到任意的 Activity 代码里就可以,可以用手拖动位置
final TextView tv = new TextView(getApplicationContext());
tv.setText("http://www.my400800.cn
");
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
FloatingFunc.onTouchEvent(arg1, tv);
return true;
}
});
效果如下:
注意事项:
一定要在AndroidManifest.xml添加
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
系统权限,不然会出错的呀。。。。。。。。。。。。。
评论
FloatingFunc.show(this, this.getWindow(), tv);
// getWindow()
window.getDecorView().getWindowVisibleDisplayFrame(frame);
TOOL_BAR_HIGH = frame.top;
楼主您好,我刚才根据您的文章写了例子,但是悬浮的View并没有在最顶层。不知您说的最上方的意思是紧靠statusBar下面,还是屏幕的最上层?
发表评论
-
andorid eclipse断点调试失灵
2013-05-09 15:06 1376在调试android程序的时候发现设置的断点怎么也进不去 ... -
android利用ZXing进行条码扫描二维码扫描源码简化
2012-01-04 09:59 2007导入项目 @Override public v ... -
Android使用ZXing类库进行条码/二维码识别
2011-12-26 11:24 1871Android使用ZXing类库进行条码/二维码识别(转) ... -
如何在开发时可以让Android应用程序支持安装到SD卡
2011-12-16 08:51 1008Android系统在2.1版本之前,应用程序是只能安装到机身内 ... -
用TextView显示带图片的效果及为文本添加链接
2011-12-06 17:13 1859为了实现在TextView中显示图片,有时对图片的宽度与高度有 ... -
android listview 滚动时异步加载图片的问题
2011-12-05 15:05 2414LoadImage.java package com ... -
android apk 为程序增加代码混淆
2011-11-30 10:09 2720概述 在2.3版本的sdk中可以看到在ANDROID_S ... -
Android 程序的安装、卸载和更新
2011-11-22 11:20 1246安装程序:软件从无到有。 卸载程序:软件从有到无。 ... -
atest201111
2011-11-21 17:04 0eeeee SQLite Developer ... -
android-XXX9.png文件拉伸不失真大家注意了
2011-11-17 14:24 1804什么是9.png: 可能做过任务栏美化 ... -
Android中String资源文件的String.format方法(java)
2011-10-25 16:57 1296很多时候我们感性Google ... -
Android 对于ListView拖动时变黑问题解决方法
2011-10-21 13:08 1585最近用ListView显示一些String数据 ... -
Android SeekBarPreference浅聊
2011-10-19 15:37 1591由于网上有很多人问到SeekBarPreferenc ... -
在Android中创建启动界面
2011-10-14 09:06 8271、制作一张启动图片splash.png,放置在res ... -
Android 菜单(OptionMenu)大全 建立你自己的菜单
2011-10-13 09:11 738菜单是用户界面中最常见的元素之一,使用非常频繁,在Andro ... -
Android中使用Gson解析JSON数据
2011-10-12 13:33 1610在Android中可以使用Gson解析JSON数据 ... -
android解析json小例子
2011-10-12 12:53 1166今天学习了一下解析json的知识,把我学习的的一个小例子拿出来 ... -
解决android http请求带中文参数会乱码(url编码)
2011-09-29 17:23 3285今天在用android 的 URL url = new U ... -
android 选择本地图片并预览
2011-09-29 14:40 1280adv_sdcard_image_upload.xml ... -
关于 apk文件反编译的方法(dex2jar和JD-GUI)
2011-09-19 11:51 1647觉着这2个工具配合学习android太靠谱了,所以放上来给大家 ...
相关推荐
在Android开发中,360浮动窗口效果是一种常见的应用功能,尤其在系统工具或辅助类应用中常见。这种效果使得应用程序可以在用户界面的顶部或底部显示一个小窗口,即便用户在其他应用中操作,该窗口仍然可见,从而提供...
在Android开发中,360浮动窗口是一种常见的应用交互设计,它允许用户在主屏幕上进行悬浮操作,提高用户的使用效率和体验。360浮动窗口通常用于即时通讯、音乐播放、视频监控等场景,使用户可以同时处理多个任务。...
在Android系统中,"最前端浮动窗口"通常指的是悬浮窗(Floating Window)或者叫系统顶层窗口,这种技术常被用于实现各种创新的功能,比如音乐播放器的歌词显示、游戏外挂监控、即时通讯应用的聊天窗口等。在Android...
在Android开发中,浮动窗口(Floating Window)通常被称为悬浮窗,是一种可以在用户界面顶层显示的小型窗口,可以独立于其他应用程序界面存在。本教程将基于提供的"Android浮动窗口demo"来详细讲解如何实现这一功能...
在Android开发中,浮动按钮(Floating Action Button, FAB)、浮动窗口(Floating Window)和悬浮窗口(Floating Window)是常见的用户界面元素,用于提供便捷的操作入口或者实现特殊显示效果。以下将详细介绍这些...
在Android系统中,浮动窗口(Float Window)是一种特殊类型的窗口,它可以在用户界面的顶层显示,允许用户在不离开当前应用的情况下访问或操作其他内容。这种技术常用于各种辅助工具或者快捷方式应用,例如,模拟...
在Android系统中,实现桌面浮动窗口(也称为悬浮窗或小部件)的技术主要涉及到权限申请、自定义ViewGroup以及窗口管理器(WindowManager)的使用。以下是对这一主题的详细阐述: 首先,为了在Android应用中创建浮动...
在Android平台上,浮动窗口(通常称为悬浮窗或小窗口)是一种可以独立于应用程序主界面,在屏幕上方自由移动和缩放的UI元素。这种技术在许多应用中被广泛使用,例如浮动便签、屏幕录制工具或者多任务管理器。在本篇...
【标题】"Android浮动窗口项目源码"是一个专注于在Android操作系统上实现类似Windows 7桌面系统的浮动窗口功能的开发资源。这种技术可以让用户在主屏幕上层叠加多个窗口,提高多任务处理的效率和便利性。 【描述】...
在Android开发中,浮动窗口(通常称为悬浮窗或者小部件)是一种常见的功能,它可以在主屏幕或其他应用之上显示内容,为用户提供便捷的操作或信息展示。本教程将详细讲解如何利用`WindowManager`来创建一个浮动窗口,...
【标题】"安卓Android源码——浮动窗口播放器"指的是一个专门为Android平台设计的应用程序源代码,它允许视频在屏幕的任何位置以浮动窗口的形式进行播放。这种功能常见于一些多任务处理的应用,如音乐播放器或视频...
在Android开发中,360浮动窗口效果是一种常见的交互设计,它允许应用在屏幕上显示一个悬浮的小窗口,用户可以自由移动、缩放该窗口,同时不影响其他应用的正常运行。这种效果常见于如聊天应用、视频播放器等,提供了...
在Android开发中,实现视频浮动窗口(又称为悬浮窗或小窗口)是一项有趣且实用的技术。这通常涉及到在用户界面的任何位置展示一个小型的视频播放器,即使用户在使用其他应用时,视频也能继续播放。这样的功能常见于...
【标题】"Android高级应用源码-浮动窗口播放器.zip" 涉及到的是在Android平台上实现一种高级功能——浮动窗口播放器。这种技术通常用于视频或音乐播放应用,允许用户在使用其他应用的同时,视频或音频内容以一个小...
在Android开发中,浮动窗口按钮截图是一种常见的功能,它允许用户在屏幕上自由移动一个按钮,点击该按钮即可快速截图。这种技术涉及到多个Android系统组件和技术,包括浮动窗口、服务和服务的生命周期管理、权限控制...
在Android开发中,浮动窗口(通常称为悬浮窗或者系统级通知)是一种可以在用户界面上自由移动的小型窗口,常用于实现如聊天头像、音乐播放控制器等应用功能。本项目"可自动移动和手动移动的浮动窗口"提供了一个完整...
在Android开发中,实现视频播放浮动窗口对话框是一项常见的需求,尤其在移动设备上,用户可能希望在使用其他应用的同时观看视频。这个功能通常被称为"悬浮窗"或"小窗口模式",它允许视频在屏幕的任何位置自由移动并...
在Android开发中,实现浮动窗口动画显示涉及到多个关键知识点,包括自定义视图、窗口权限、动画处理以及触摸事件响应。下面将详细讲解这些概念及其应用。 首先,我们需要理解Android中的浮动窗口,通常称为“悬浮窗...
标题“android 浮动按钮效果”所指的就是如何在Android应用中实现具有交互功能的浮动按钮,包括点击后展开和折叠的效果。这种效果能够增强用户界面的动态性和交互性,使用户在使用应用时有更丰富的视觉体验。 在...