歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 仿iPhone的AssistiveTouch 懸浮輔助球工具

仿iPhone的AssistiveTouch 懸浮輔助球工具

日期:2017/3/1 9:57:24   编辑:Linux編程

用過iphone的朋友都知道,iPhone有個圓球輔助工具,它漂浮在你的手機屏幕(在任何APP之上),你可以將它移動到任何地方,它叫做AssistiveTouch,本篇模擬該軟件實現一個小案例,主要是實現它的界面,首先來看看實現的效果吧:

拖動小圓球:

點擊彈出pop窗口:

為了讓輔助工具一直懸浮在窗口之上,這裡使用的機制是通過在程序初始化是,啟動一個service,在service的onCreate() 函數中使用LayoutInflater來加載一個view,而這個view就是輔助球的布局文件:floatball.xml,然後對它進行onclick事件的監聽,setOnClickListener監聽到輔助球點擊事件之後,就創建一個PopupWindow,彈出如上的菜單界面,大體的實現就是這樣。

其實,實現窗口懸浮於最前面的一個重要屬性是:WindowManager.LayoutParams.TYPE_PHONE

我們只要將WindowManager.LayoutParams的type屬性設置為 WindowManager.LayoutParams.TYPE_PHONE就可以實現懸浮最前面。

工程目錄結構:

部分代碼解析:

MyApplication.java:

package com.tyd.floatball.util;

import Android.app.Application;
import android.view.WindowManager;

public class MyApplication extends Application {

private WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();

public WindowManager.LayoutParams getMywmParams() {
return wmParams;
}

}

Copyright © Linux教程網 All Rights Reserved