1. 程式人生 > >Android 實現頂層視窗、浮動視窗

Android 實現頂層視窗、浮動視窗

複製程式碼
    

//Edited by mythou

  private void createFloatView()
    {
                Button btn_floatView = new Button()
        btn_floatView = new Button(getApplicationContext());
        btn_floatView.setText("懸浮窗");

        wm = (WindowManager) getApplicationContext().getSystemService(
                Context.WINDOW_SERVICE);
        
params = new WindowManager.LayoutParams(); // 設定window type params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; /* * 如果設定為params.type = WindowManager.LayoutParams.TYPE_PHONE; 那麼優先順序會降低一些, * 即拉下通知欄不可見 */ params.format = PixelFormat.RGBA_8888; //
設定圖片格式,效果為背景透明 // 設定Window flag params.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; /* * 下面的flags屬性的效果形同“鎖定”。 懸浮窗不可觸控,不接受任何事件,同時不影響後面的事件響應。 * wmParams.flags=LayoutParams.FLAG_NOT_TOUCH_MODAL | * LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCHABLE;
*/ // 設定懸浮窗的長得寬 params.width = 100; params.height = 100; // 設定懸浮窗的Touch監聽 btn_floatView.setOnTouchListener(new OnTouchListener() { int lastX, lastY; int paramX, paramY; public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: lastX = (int) event.getRawX(); lastY = (int) event.getRawY(); paramX = params.x; paramY = params.y; break; case MotionEvent.ACTION_MOVE: int dx = (int) event.getRawX() - lastX; int dy = (int) event.getRawY() - lastY; params.x = paramX + dx; params.y = paramY + dy; // 更新懸浮窗位置 wm.updateViewLayout(btn_floatView, params); break; } return true; } }); wm.addView(btn_floatView, params); isAdded = true; }
複製程式碼

相關推薦

Android 實現頂層視窗浮動視窗

//Edited by mythou   private void createFloatView() { Button btn_floatView = new Button() btn_floatView = new Button(g

Android 實現頂層視窗浮動視窗(附Demo)

//Edited by mythou  private void createFloatView() { Button btn_floatView = new Button() btn_floatView = new Button(ge

IOS學習 iPad控制元件:POP控制元件器,分割視窗浮動視窗模態檢視的使用

@implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptio

Android 實現頂層視窗懸浮視窗

1、如圖片1所示,在一個Android應用中,除了標題欄和底層的ActionBar的區域,是我們可以操縱的UI區域,那是不是說我們就不能改變除了這兩個區域的UI呢?答案是否定的。 比如現在我們希望把一個View放在視窗的最低端顯示,通過hierarchyviewer工具我們

MFC(2):底層實現視窗MFC視窗建立與訊息對映windows字符集和嚮導的使用

=====================從底層去實現一個視窗=============== 程式入口是WinMain函式 視窗的建立步驟: -->  設計(WNDCLASS)  -->  註冊(RegisterClass)  -->

Android實現過渡動畫引導頁 Android判斷是否第一次啟動App

最近參加比賽聯絡模擬題其中有一道題是: 結合上學期期末實訓整理的資料,加上網上博主的博文參考。再次整理一遍,以供以後參考。 這篇是基於Android自身的控制元件View做出的效果。 文章最後附上利用RXJAVA技術做成的引導頁。 首先是過渡動畫,因為它不論App是否第一次啟動都會顯

C# winform winApi 根據傳入handle 控制代碼獲取 其它視窗,如:使用中的子視窗同級視窗等。

//根據傳入的視窗控制代碼,獲取到同級、頂級、低階的視窗,根據GetWindowCmd 傳入的不同獲取也不同,詳細看GetWindowCmd 類說明 [DllImport("user32.dll", SetLastError = true)] static exter

IntelliJ IDEA2016 除錯視窗幫助視窗搜尋框中文亂碼

編碼格式已經設定為UTF-8,但是高度視窗、幫助視窗、搜尋框、Setting視窗還是亂碼,如下圖 發現編碼視窗中文是不亂碼的,搜尋框是亂碼的, 原因:字型的原因:我設定的字型是Consolas,此字型是不支援中文的,可以改為其他支援中文的字型,比如說微軟雅黑 網上其

iframe.contentWindow 屬性:關於contentWindow和contentDocument區分 jquery 獲取父視窗的元素視窗視窗

    定義和用法   contentDocument 屬效能夠以 HTML 物件來返回 iframe 中的文件,可以通過所有標準的 DOM 方法來處理被返回的物件。   語法:frameObject.contentWindow,或者 iframeObj

android 實現城市選擇聯絡人等功能的易拓展 RecyclerView 庫,包含自動索引,粘性等功能

A RecyclerView with indexable, sticky and many other features. 輕鬆實現:選擇城市,選擇聯絡人等需要索引的功能 替代之前的 IndexableStickyListView(移至該分支),進行大幅度重構,效能優化,更易使用的 API,更易拓展的

IntelliJ IDEA除錯視窗幫助視窗控制檯搜尋框中文亂碼問題解決

網上說解決IDEA亂碼問題涉及到檔案編碼問題,其實根本沒有那麼麻煩,只需要設定一個地方就可以了。下面看看這些亂碼,我是使用的IDEA12.0版。這些亂碼影響了開發,讓人不爽,本人試過網上很多方法,不湊效。經過本人測試,最後終於找到了亂碼原因:編譯器Appearance的字型不

Android: 實現類似QQ微信的表情輸入鍵盤

需求 最近在寫北郵人論壇客戶端時,有一個需求是實現像手機QQ、微信那樣的表情輸入鍵盤,效果圖: 表情鍵盤本身並不難做,無非就是一個帶SlidingTab的ViewPager,困擾我的地方在於,如何正確處理系統軟鍵盤與表情鍵盤之間的顯隱關係。 Google了一下,大概有這麼幾種思路: 第一種:動態改變So

IntelliJ IDEA 12除錯視窗幫助視窗搜尋框等中文亂碼問題解決

轉自 http://blog.csdn.net/zht666/article/details/8953516 網上說解決IDEA亂碼問題涉及到檔案編碼問題,其實根本沒有那麼麻煩,只需要設定一個地方就可以了。 下面看看這些亂碼,我是使用的IDEA12.0版。

Android實現音樂示波器均衡器重低音和音場功能

本例項來自於《瘋狂Android講義》,要實現具體的功能,需要了解以下API: MediaPlayer 媒體播放器Visualizer 頻譜Equalizer 均衡器BassBoost 重低音控制器PresetReverb 預設音場控制器Paint 繪圖來看下效果示意圖,如

JavaScript獲取子視窗視窗的內容(可用於頁面之間傳遞內容)

1、Window物件的opener屬性:返回對建立此視窗的視窗的引用 註釋:只有表示頂層視窗的 Window 物件的 operner 屬性才有效,表示框架的 Window 物件的 opern

TCP/IP詳解--滑動視窗擁塞視窗慢啟動Negle演算法

 TCP的資料流大致可以分為兩類,互動資料流與成塊的資料流。互動資料流就是傳送控制命令的資料流,比如relogin,telnet,ftp命令等等;成塊資料流是用來發送資料的包,網路上大部分的TCP包都是這種包。 很明顯,TCP在傳輸這兩種型別的包時的效率是不一樣的,因此為了

idea15搜尋視窗除錯視窗對話方塊按鈕亂碼

 從eclipse轉到idea,安裝上idea15後,搜尋視窗、除錯視窗、對話方塊按鈕亂碼。 解決: File ----》settings----》Appearance,將字型設定為中文字

我的Android進階之旅------>Android實現音樂示波器均衡器重低音和音場功能

package com.oyp.media; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Context; import android.gra

Esper系列(二)時間視窗長度視窗cast註解自定義函式靜態方法

長度視窗實現原理圖 說明: 上圖長度視窗為5,事件W1至W5進入引擎後屬於NewEvents佇列,事件W6進入引擎後,W2至W6就屬於NewEvents佇列,而事件W1就屬於OldEvents隊列了。NewEvents為先進先出佇列,佇列長度為EPL語句中制定的長度視窗

Java增加視窗設定視窗標題

import java.awt.Frame; /** * 增加視窗 * @author Lixiangjian * */ public class BallGame extends Frame{ void launchFrame(){ //設定視窗大小