首页 / 操作系统 / Linux / Android 超炫的悬浮窗设计与实现
Android 超炫的悬浮窗设计与实现方法,现在很多软件都有悬浮框功能,比如Facebook,体验效果极佳。其他不说,直接步入正题看看具体的实现吧。Demo 代码下载地址:------------------------------------------分割线------------------------------------------FTP地址:ftp://ftp1.linuxidc.com用户名:ftp1.linuxidc.com密码:www.linuxidc.com在 2014年LinuxIDC.com2月Android 超炫的悬浮窗设计与实现下载方法见 http://www.linuxidc.com/Linux/2013-10/91140.htm------------------------------------------分割线------------------------------------------一、效果图:二、实现知识点:1. WindowManageraddView(View view, LayoutParams params) ,添加一个悬浮窗
updateViewLayout(View view, LayoutParams params),要使悬浮窗做出改变,需通过改变params的属性,并调用此方法更新。removeView()移除一个悬浮窗。2. WindowManager.LayoutParams属性的设置。WindowManager.LayoutParams mParams=new WindowManager.LayoutParams();mParams.type=WindowManager.LayoutParams.TYPE_PHONE;//悬浮窗的类型mParams.format= PixelFormat.RGBA_8888; //效果为透明mParams.flags=WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; //悬浮窗的行为,比如说不可聚焦,不可触摸,全屏对等mParams.width=100;//指定悬浮窗的宽度mParams.height=100;//指定悬浮窗的高度。mParams.gravity=Gravity.LEFT|Gravity.TOP; //悬浮窗的对齐方式mParams.x=0; //悬浮窗的横坐标mParams.y=0;//悬浮窗的纵坐标3. 其他一些动画效果,通过重写View或者使用 SurfaceView作为补间动画。public interface IAnimation
{
public abstract void onAnimStart();
public abstract void onAnimDraw(SurfaceHolder holder);
public abstract void onAnimEnd();
}具体的动画见com.open.tooltip.anim包下的具体实现类4. 用Service 来控制动画