歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android 超炫的懸浮窗設計與實現

Android 超炫的懸浮窗設計與實現

日期:2017/3/1 9:48:34   编辑:Linux編程

Android 超炫的懸浮窗設計與實現方法,現在很多軟件都有懸浮框功能,比如Facebook,體驗效果極佳。其他不說,直接步入正題看看具體的實現吧。

Demo 代碼下載地址:

------------------------------------------分割線------------------------------------------

FTP地址:ftp://ftp1.linuxidc.com

用戶名:ftp1.linuxidc.com

密碼:www.linuxidc.com

在 2014年LinuxIDC.com\2月\Android 超炫的懸浮窗設計與實現

下載方法見 http://www.linuxidc.com/Linux/2013-10/91140.htm

------------------------------------------分割線------------------------------------------

一、效果圖:

二、實現知識點:

1. WindowManager

addView(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 來控制動畫

Copyright © Linux教程網 All Rights Reserved