一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Jetpack WindowManager 1.1 穩(wěn)定版

谷歌開發(fā)者 ? 來源:未知 ? 2023-10-18 19:10 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

作者 / Android 開發(fā)者關(guān)系工程師 Francesco Romano

自 Jetpack WindowManager 1.0 穩(wěn)定版發(fā)布的一年多以來,可折疊設(shè)備和大屏設(shè)備領(lǐng)域發(fā)生了諸多變化。許多新款設(shè)備都已進(jìn)入市場(chǎng),大量新用例也已解鎖! Jetpack WindowManager 庫(kù)在幫助您優(yōu)化您的 Android 應(yīng)用上發(fā)揮重要作用,使其能夠適用于不同的設(shè)備類型。并且此版本還包含多項(xiàng)新功能和改進(jìn),是一個(gè)重大的里程碑式進(jìn)展。 讓我們來回顧一下 Jetpack WindowManager 庫(kù)涵蓋的所有用例。

獲取窗口指標(biāo) (和大小類別!)

過去,開發(fā)者通過設(shè)備顯示尺寸來決定其應(yīng)用布局,但隨著不同設(shè)備類型 (如可折疊設(shè)備) 和顯示模式 (如多窗口模式和多顯示屏模式) 的出現(xiàn),了解應(yīng)用窗口的大小而不是設(shè)備的顯示尺寸變得至關(guān)重要。 Jetpack WindowManager WindowMetricsCalculator 界面可以提供可靠的數(shù)據(jù)來源,以幫助您衡量當(dāng)前可用于顯示您應(yīng)用的屏幕空間。

  • WindowMetricsCalculator

    https://developer.android.google.cn/reference/kotlin/androidx/window/layout/WindowMetricsCalculator

在此基礎(chǔ)上,窗口大小類別是一組視口劃分點(diǎn),有助于您設(shè)計(jì)、開發(fā)和測(cè)試響應(yīng)式和自適應(yīng)應(yīng)用布局。此類劃分點(diǎn)專門用于平衡布局的簡(jiǎn)單性和靈活性,以便針對(duì)特殊情況優(yōu)化您的應(yīng)用。

  • 窗口大小類別

    https://developer.android.google.cn/guide/topics/large-screens/support-different-screen-sizes#window_size_classes

對(duì)于基于 View 的應(yīng)用,您可以使用以下代碼段來計(jì)算窗口大小類別:

privatefuncomputeWindowSizeClasses(){
        val metrics = WindowMetricsCalculator.getOrCreate()
            .computeCurrentWindowMetrics(this)
        val width = metrics.bounds.width()
        val height = metrics.bounds.height()
        val density = resources.displayMetrics.density
        val windowSizeClass = WindowSizeClass.compute(width/density, height/density)


        // use windowSizeClass.windowHeightSizeClass and windowSizeClass.windowWidthSizeClass
}

您可以參閱 "支持不同屏幕尺寸"開發(fā)者指南了解詳細(xì)信息。

  • 支持不同屏幕尺寸

    https://developer.android.google.cn/guide/topics/large-screens/support-different-screen-sizes

讓應(yīng)用能夠感知折疊

Jetpack WindowManager 還提供優(yōu)化可折疊設(shè)備布局所需的所有 API。 具體而言,您可以使用 WindowInfoTracker 查詢 FoldingFeature 信息,如
  • 狀態(tài): 設(shè)備的折疊狀態(tài): FLATHALF_OPENED

  • 方向:折疊或設(shè)備合頁的方向:HORIZONTALVERTICAL
  • 遮擋類型: 折疊或合頁是否遮擋部分顯示屏:NONEFULL
  • 是否分離:折疊或合頁是否創(chuàng)建了兩個(gè)邏輯顯示區(qū)域:true 或 false
  • 邊界:應(yīng)用窗口內(nèi)功能的邊界矩形 (繼承自 DisplayFeature)
  • WindowInfoTrackerhttps://developer.android.google.cn/reference/kotlin/androidx/window/layout/WindowInfoTracker
  • FoldingFeaturehttps://developer.android.google.cn/reference/androidx/window/layout/FoldingFeature
  • DisplayFeaturehttps://developer.android.google.cn/reference/androidx/window/layout/DisplayFeature#getBounds%28%29

您可以通過 Flow 訪問這些數(shù)據(jù):

override fun onCreate(savedInstanceState: Bundle?) {
    ...
    lifecycleScope.launch(Dispatchers.Main) {
        lifecycle.repeatOnLifecycle(Lifecycle.State.STARTED) {
            WindowInfoTracker.getOrCreate(this@MainActivity)
                .windowLayoutInfo(this@MainActivity)
                .collect { layoutInfo ->
                    // New posture information
                    val foldingFeature = layoutInfo.displayFeatures
                    // use the folding feature to update the layout
                }
        }
    }
}
  • Flow

    https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-flow/

一旦收集到 FoldingFeature 信息,您便可以使用這些數(shù)據(jù)為當(dāng)前設(shè)備狀態(tài)創(chuàng)建優(yōu)化布局,例如實(shí)現(xiàn)桌面模式。您可以在 MediaPlayerActivity.kt 中查看桌面模式的示例。
  • MediaPlayerActivity.kt

    https://github.com/android/platform-samples/blob/main/samples/user-interface/windowmanager/src/main/java/com/example/platform/ui/windowmanager/MediaPlayerActivity.kt

您還可以訪問我們的 Codelab 了解如何使用 Jetpack WindowManager 支持可折疊設(shè)備和雙屏設(shè)備:https://developer.android.google.cn/codelabs/android-window-manager-dual-screen-foldables

并排顯示兩個(gè) Activity

除了上述功能您還可以使用最新的穩(wěn)定版 Jetpack WindowManager API:Activity 嵌入
  • Activity 嵌入

    https://developer.android.google.cn/reference/kotlin/androidx/window/embedding/package-summary

Android 12L 起,Activity 嵌入允許采用傳統(tǒng)多 Activity 架構(gòu)的開發(fā)者通過同一應(yīng)用,甚至多個(gè)應(yīng)用在大屏設(shè)備上并排顯示多個(gè) Activity。 這是以最少的代碼更改甚至無需代碼更改便可以實(shí)現(xiàn)列表詳情布局的絕佳方式。 注意: Modern Android Development (MAD) 建議使用基于 Jetpack API (包括 Jetpack Compose) 的單 Activity 架構(gòu)。如果您的應(yīng)用使用 Fragment,請(qǐng)參閱 SlidingPaneLayout。Activity 嵌入專為無法輕松更新為 MAD 的多 Activity 舊版應(yīng)用而設(shè)計(jì)。

  • SlidingPaneLayout

    https://developer.android.google.cn/jetpack/androidx/releases/slidingpanelayout

這也是該庫(kù)中最大的變化,目前在 Jetpack WindowManager 1.1 版中,Activity 嵌入 API 非常穩(wěn)定! 不僅如此,該 API 目前的功能也更加豐富,您可以通過此 API:
  • 修改分屏行為 (分屏比例、規(guī)則、結(jié)束行為)

  • 定義占位符
  • 在運(yùn)行時(shí)環(huán)境中檢查 (并更改) 分屏狀態(tài)
  • 實(shí)現(xiàn)水平分屏
  • 在全窗口中啟動(dòng)模態(tài)
如果您想探索 Activity 嵌入,可訪問專用 Codelab 了解如何使用 Activity 嵌入構(gòu)建列表詳情布局:

https://developer.android.google.cn/codelabs/large-screens/activity-embedding

許多應(yīng)用都已開始在生產(chǎn)環(huán)境中使用 Activity 嵌入,例如 WhatsApp:wKgZomUwAQeAGdxfAANwGdWvh-Q837.png ?還有 eBay!

wKgZomUwAQeAFg-uAAd0Z8rsiAI921.png

實(shí)現(xiàn)包含多 Activity 的列表詳情布局并不是 Activity 嵌入的唯一用例。 自 Android 13 (API 級(jí)別 33) 起,應(yīng)用可以嵌入來自其他應(yīng)用的 Activity。 跨應(yīng)用 Activity 嵌入支持多個(gè) Android 應(yīng)用的 Activity 進(jìn)行可視化集成處理。系統(tǒng)會(huì)在屏幕上并排或上下顯示托管應(yīng)用的 Activity 和其他應(yīng)用的嵌入 Activity,就像在單一應(yīng)用 Activity 嵌入中一樣。 托管應(yīng)用會(huì)按照實(shí)現(xiàn)單一應(yīng)用 Activity 嵌入的相同方式實(shí)現(xiàn)跨應(yīng)用 Activity 嵌入,但出于安全原因,被嵌入的應(yīng)用必須同意并選擇加入。 您可以在 "Activity 嵌入" 開發(fā)者指南中深入了解跨應(yīng)用嵌入:

  • Activity 嵌入

    https://developer.android.google.cn/guide/topics/large-screens/activity-embedding#cross-application

總結(jié)

如果您想優(yōu)化您的應(yīng)用在不同設(shè)備類型上的用戶體驗(yàn),Jetpack WindowManager 便是您應(yīng)該學(xué)習(xí)的最重要的庫(kù)之一。 WindowManager 還將在每個(gè)版本中添加有趣的新功能,敬請(qǐng)關(guān)注 1.2 版本中即將推出的功能。
  • 1.2 版本

    https://developer.android.google.cn/jetpack/androidx/releases/window#version_12_2

您可以參閱 Jetpack WindowManager 文檔示例應(yīng)用,即刻開始使用 WindowManager!

  • 文檔

    https://developer.android.google.cn/jetpack/androidx/releases/window

  • 示例應(yīng)用

    https://github.com/android/platform-samples/tree/main/samples/user-interface/windowmanager

開發(fā)者福利月

在十月,開啟專屬開發(fā)者們的快樂!線下線上精彩互動(dòng)活動(dòng)、神秘禮品、干貨資料包統(tǒng)統(tǒng)安排上,讓驚喜和期待填滿整月。

趕快來了解詳情參與互動(dòng),收獲快樂和福利吧!

wKgZomUwAQiAOXxrAAAafJIrrMk621.gif?點(diǎn)擊屏末||即刻開始使用 Jetpack WindowManager

wKgZomUwAQiAIF0UAAATN9B0Fw0405.png

wKgZomUwAQiAYx-lAAMyGF3oQT4271.png

wKgZomUwAQiACFDOAAAptPJQ2wE812.png


原文標(biāo)題:Jetpack WindowManager 1.1 穩(wěn)定版

文章出處:【微信公眾號(hào):谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 谷歌
    +關(guān)注

    關(guān)注

    27

    文章

    6231

    瀏覽量

    108119

原文標(biāo)題:Jetpack WindowManager 1.1 穩(wěn)定版

文章出處:【微信號(hào):Google_Developers,微信公眾號(hào):谷歌開發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    新品 | Cardputer v1.1 與 Dial v1.1 Wi-Fi信號(hào)升級(jí)!更低功耗!

    Cardputer和Dial自發(fā)布以來,憑借其獨(dú)特的設(shè)計(jì)和強(qiáng)大的功能,迅速成為M5Stack的“明星產(chǎn)品”。如今,我們帶來了全新升級(jí)版——Cardputerv1.1和Dialv1.1,為開發(fā)者提供
    的頭像 發(fā)表于 03-07 18:43 ?659次閱讀
    新品 | Cardputer v<b class='flag-5'>1.1</b> 與 Dial v<b class='flag-5'>1.1</b> Wi-Fi信號(hào)升級(jí)!更低功耗!

    Android Studio Ladybug Feature Drop版本的新功能

    Android Studio Ladybug Feature Drop (2024.2.2) 穩(wěn)定版已推出!
    的頭像 發(fā)表于 03-03 16:13 ?514次閱讀
    Android Studio Ladybug Feature Drop版本的新功能

    EE-372:CrossCore? embedded Studio 1.1.x入門

    電子發(fā)燒友網(wǎng)站提供《EE-372:CrossCore? embedded Studio 1.1.x入門.pdf》資料免費(fèi)下載
    發(fā)表于 01-03 14:56 ?0次下載
    EE-372:CrossCore? embedded Studio <b class='flag-5'>1.1</b>.x入門

    HTTP 1.1 和 HTTP 2.0 的區(qū)別

    HTTP(超文本傳輸協(xié)議)是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的協(xié)議之一,用于在客戶端和服務(wù)器之間傳輸數(shù)據(jù)。隨著技術(shù)的發(fā)展,HTTP協(xié)議也在不斷地更新和優(yōu)化。HTTP/1.1是1999年發(fā)布的,而HTTP/2是在
    的頭像 發(fā)表于 12-30 09:25 ?1102次閱讀

    解析NVIDIA JetPack 6.1的新功能

    NVIDIA JetPack一直在不斷發(fā)展,通過提供量身定制的先進(jìn)軟件滿足邊緣 AI 和機(jī)器人開發(fā)者日益增長(zhǎng)的需求。每次發(fā)布的 JetPack 新版本都會(huì)升級(jí)性能、加入新功能與優(yōu)化現(xiàn)有工具,以便為
    的頭像 發(fā)表于 11-28 10:41 ?1049次閱讀
    解析NVIDIA <b class='flag-5'>JetPack</b> 6.1的新功能

    英國(guó)比克新推出了PicoScope7軟件的穩(wěn)定新版本

    英國(guó)比克正式推出了PicoScope7.1.39穩(wěn)定版。這款軟件在原有的基礎(chǔ)上進(jìn)行了全面升級(jí),不僅繼承了EarlyAccess版本中的多項(xiàng)創(chuàng)新功能,還進(jìn)行了用戶體驗(yàn)(UX)優(yōu)化、錯(cuò)誤修正以及操作系統(tǒng)
    的頭像 發(fā)表于 11-09 01:08 ?802次閱讀
    英國(guó)比克新推出了PicoScope7軟件的<b class='flag-5'>穩(wěn)定</b>新版本

    谷歌正式向Pixel設(shè)備推送Android 15穩(wěn)定版

    10月17日最新資訊,谷歌今日已正式向Pixel系列設(shè)備推送Android 15穩(wěn)定版更新。目前,已有部分Pixel設(shè)備成功完成升級(jí),而更大范圍的推送預(yù)計(jì)將在本周末進(jìn)行。
    的頭像 發(fā)表于 10-17 16:31 ?976次閱讀

    谷歌開始推送Android 15穩(wěn)定版

    近日,谷歌正式向Pixel系列設(shè)備推送了Android 15穩(wěn)定版操作系統(tǒng)。目前,已有部分Pixel設(shè)備率先完成了系統(tǒng)升級(jí),預(yù)計(jì)本周晚些時(shí)候,更大規(guī)模的更新推送將全面展開。
    的頭像 發(fā)表于 10-17 16:12 ?2059次閱讀

    NVIDIA JetPack 6.0版本的關(guān)鍵功能

    NVIDIA JetPack SDK 支持 NVIDIA Jetson 模塊,為構(gòu)建端到端加速 AI 應(yīng)用提供全面的解決方案。JetPack 6 通過微服務(wù)和一系列新功能,擴(kuò)展了 Jetson 平臺(tái)的靈活性和可擴(kuò)展性,是 2024 年截至目前下載量最高的
    的頭像 發(fā)表于 09-09 10:18 ?1078次閱讀
    NVIDIA <b class='flag-5'>JetPack</b> 6.0版本的關(guān)鍵功能

    穩(wěn)壓電源電壓不穩(wěn)定的原因

    穩(wěn)定。 穩(wěn)壓電源的工作原理 在深入探討穩(wěn)壓電源電壓不穩(wěn)定的原因之前,我們首先需要了解穩(wěn)壓電源的工作原理。穩(wěn)壓電源主要由整流器、濾波器、穩(wěn)壓器和保護(hù)電路等部分組成。其工作原理如下: 1.1 整流器:整流器的作用是將
    的頭像 發(fā)表于 08-29 10:38 ?2341次閱讀

    使用NVIDIA JetPack 6.0和YOLOv8構(gòu)建智能交通應(yīng)用

    本文將介紹如何使用 NVIDIA JetPack 6.0 中的全新 Jetson 平臺(tái)服務(wù),來構(gòu)建一個(gè)適用于邊緣的端到端交通分析解決方案。該系統(tǒng)集成了多個(gè)功能:使用視頻存儲(chǔ)工具包 (VST) 服務(wù)
    的頭像 發(fā)表于 08-23 16:49 ?1012次閱讀
    使用NVIDIA <b class='flag-5'>JetPack</b> 6.0和YOLOv8構(gòu)建智能交通應(yīng)用

    藍(lán)牙Mesh 1.1網(wǎng)絡(luò)的性能測(cè)試

    藍(lán)牙Mesh 1.1版本中引入了遠(yuǎn)程配置和無線設(shè)備固件更新(OTA DFU)的功能。在這篇技術(shù)博客中,我們通過廣泛部署基于Silicon Labs(亦稱“芯科科技”)的xG24和xG21無線SoC
    的頭像 發(fā)表于 08-20 14:22 ?1187次閱讀

    Jetpack Compose和設(shè)備類型的三大重要更新

    2024 年 Google I/O 大會(huì)上我們分享了大量更新和公告,幫助開發(fā)者提升工作效率。了解 2024 年 Google I/O 大會(huì)上有關(guān) Jetpack Compose 和設(shè)備類型的三大重要更新。
    的頭像 發(fā)表于 08-09 17:07 ?1007次閱讀

    【AWTK使用經(jīng)驗(yàn)】如何更換AWTK SDK與渲染模式

    。更換編譯項(xiàng)目使用的AWTKSDKAWTKSDK版本及區(qū)別AWTKSDK分為穩(wěn)定版和最新版。穩(wěn)定版是指安裝AWStudio附帶的AWTKSDK整合包,AWStudi
    的頭像 發(fā)表于 08-01 08:25 ?1555次閱讀
    【AWTK使用經(jīng)驗(yàn)】如何更換AWTK SDK與渲染模式

    暫態(tài)穩(wěn)定和靜態(tài)穩(wěn)定的區(qū)別是什么

    暫態(tài)穩(wěn)定和靜態(tài)穩(wěn)定是電力系統(tǒng)穩(wěn)定性分析中的兩個(gè)重要概念,它們分別描述了電力系統(tǒng)在受到擾動(dòng)后的動(dòng)態(tài)響應(yīng)和穩(wěn)態(tài)運(yùn)行狀態(tài)。下面將介紹暫態(tài)穩(wěn)定和靜態(tài)穩(wěn)定
    的頭像 發(fā)表于 07-26 09:41 ?4908次閱讀