最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

android 瀏覽器之多窗口方案詳解

 更新時間:2013年07月26日 10:15:17   投稿:jingxian  
android 瀏覽器之多窗口方案詳細(xì)介紹,需要的朋友可以過來參考下

我們Android平臺是一個又一個的Activity組成的,每一個Activity有一個或者多個View構(gòu)成。
所以說,當(dāng)我們想顯示一個界面的時候,我們首先想到的是建立一個Activity,然后所有的操作在Activity里面實現(xiàn),或者是一個Dialog或者Toast。這種方式固然簡單,但是在有些情況下,我們要求的只是簡單的顯示,用Activity顯然是多余,這個時候,我們?nèi)绾翁幚砟兀?/p>

Android的一個應(yīng)用在底層也是linux的一個進(jìn)程,但在上層弱化了進(jìn)程的概念,抽象出了Activity這樣一種交互。代碼直接控制的是Activity,用戶的交互也是Activity。
Activity是從用戶交互的角度抽象出來的一個對象,在概念和使用上和進(jìn)程相隔離。進(jìn)程類似一個收養(yǎng)的功能,一個進(jìn)程可以有多個Activity,不僅可以收養(yǎng)自己當(dāng)前應(yīng)用的Activity,

原來,整個Android的窗口機(jī)制是基于一個叫做 WindowManager,這個接口可以添加view到屏幕,
也可以從屏幕刪除view。它面向的對象一端是屏幕,另一端就是View,直接忽略我們以前的Activity
或者Dialog之類的東東。其實我們的Activity或者Diolog底層的實現(xiàn)也是通過WindowManager,這個
WindowManager是全局的,整個系統(tǒng)就是這個唯一的東東。它是顯示View的最底層了。

寫一個簡單的代碼:
Java代碼 

復(fù)制代碼 代碼如下:

WindowManager mWm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);   
Button view = new Button(this);   
view.setText("window manager test!");   
WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();   
mWm.addView(view, mParams);  

一般在剛開始開發(fā)android時,會犯一個錯誤,即在View的構(gòu)造函數(shù)中獲取getWidth()和getHeight(),
當(dāng)一個view對象創(chuàng)建時,android并不知道其大小,所以getWidth()和getHeight()返回的結(jié)果是0,
真正大小是在計算布局時才會計算,所以會發(fā)現(xiàn)一個有趣的事,即在onDraw( ) 卻能取得長寬的原因。

使用WindowManager實現(xiàn)懸浮窗口

復(fù)制代碼 代碼如下:

       WindowManager.LayoutParams params;

        params = new WindowManager.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.WRAP_CONTENT,
                WindowManager.LayoutParams.TYPE_PHONE,//TYPE_APPLICATION,
                WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
                PixelFormat.TRANSLUCENT);
        params.gravity = Gravity.TOP;
        manager.addView(tmpView, params); 

 
就可以將需要加到懸浮窗口中的View加入到窗口中了:
復(fù)制代碼 代碼如下:

 if(view.getParent==null)//如果view沒有被加入到某個父組件中,則加入WindowManager中
        wManager.addView(view,wmParams);

其中,view為需要放到懸浮窗口中的視圖組件。

如果要將其從WindowManager中移除,則可以執(zhí)行以下語句:

復(fù)制代碼 代碼如下:

        if(view.getParent()!=null)
        wManager.removeView(view);
 
android中可按上面的方法增加多個窗口,多個窗口產(chǎn)生的問題:
 
2. 應(yīng)用生命周期的問題
當(dāng)其他應(yīng)用出現(xiàn)在瀏覽器主Activity之前時,不論前面彈出了多少個瀏覽器的子窗口,瀏覽器的生命周期都進(jìn)入onPause狀態(tài)。

相關(guān)文章

  • Android實現(xiàn)自動點擊無障礙服務(wù)功能的實例代碼

    Android實現(xiàn)自動點擊無障礙服務(wù)功能的實例代碼

    這篇文章主要介紹了Android實現(xiàn)自動點擊無障礙服務(wù)功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • Android簡單封裝一個MVP基類流程詳解

    Android簡單封裝一個MVP基類流程詳解

    MVP是從經(jīng)典的模式MVC演變而來,它們的基本思想有相通的地方:Controller/Presenter負(fù)責(zé)邏輯的處理,Model提供數(shù)據(jù),View負(fù)責(zé)顯示。下面這篇文章主要給大家介紹了關(guān)于Android從實現(xiàn)到封裝MVP的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧
    2023-03-03
  • 詳細(xì)分析Android中onTouch事件傳遞機(jī)制

    詳細(xì)分析Android中onTouch事件傳遞機(jī)制

    相信不少朋友在剛開始學(xué)習(xí)Android的時候,對于onTouch相關(guān)的事件一頭霧水。分不清onTouch(),onTouchEvent()和OnClick()之間的關(guān)系和先后順序,所以覺得有必要搞清onTouch事件傳遞的原理。經(jīng)過一段時間的琢磨以及相關(guān)博客的介紹,這篇文章就給大家詳細(xì)的分析介紹下。
    2016-10-10
  • android之json數(shù)據(jù)過長打印不全問題的解決

    android之json數(shù)據(jù)過長打印不全問題的解決

    這篇文章主要介紹了android之json數(shù)據(jù)過長打印不全問題的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Flutter實現(xiàn)抽屜動畫

    Flutter實現(xiàn)抽屜動畫

    這篇文章主要為大家詳細(xì)介紹了Flutter實現(xiàn)抽屜動畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Android實現(xiàn)單行標(biāo)簽流式布局

    Android實現(xiàn)單行標(biāo)簽流式布局

    這篇文章主要為大家詳細(xì)介紹了Android單行標(biāo)簽流式布局,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 從零開始學(xué)android小示例程序

    從零開始學(xué)android小示例程序

    這篇文章主要介紹了一個學(xué)習(xí)android開發(fā)的小示例程序,需要的朋友可以參考下
    2014-02-02
  • Android中ListView的item點擊沒有反應(yīng)的解決方法

    Android中ListView的item點擊沒有反應(yīng)的解決方法

    這篇文章主要介紹了Android中ListView的item點擊沒有反應(yīng)的相關(guān)資料,需要的朋友可以參考下
    2017-10-10
  • Android使用vcard文件的方法簡單實例

    Android使用vcard文件的方法簡單實例

    這篇文章主要介紹了Android使用vcard文件的方法,結(jié)合實例形式分析了Android針對vcard文件的打開、讀取、寫入等相關(guān)操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • Android入門:多線程斷點下載詳細(xì)介紹

    Android入門:多線程斷點下載詳細(xì)介紹

    本篇文章主要介紹了 Android多線程斷點下載,即文件在下載一部分中斷后,可繼續(xù)接著已有進(jìn)度下載,有需要的可以了解一下。
    2016-11-11

最新評論

沙湾县| 石首市| 辽阳市| 济阳县| 聂荣县| 崇左市| 称多县| 隆化县| 北票市| 墨竹工卡县| 济阳县| 任丘市| 河池市| 丰都县| 罗源县| 景泰县| 南岸区| 荆门市| 梁山县| 永丰县| 湟源县| 府谷县| 天长市| 萨迦县| 临泉县| 桂平市| 大悟县| 温泉县| 那曲县| 霍林郭勒市| 靖西县| 九龙城区| 碌曲县| 泸西县| 库伦旗| 寿光市| 敦煌市| 陆川县| 峨眉山市| 丰台区| 清丰县|