国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android 雙屏異顯(Presentation) 開發(fā),將第二個頁面投屏到副屏上

這篇具有很好參考價值的文章主要介紹了Android 雙屏異顯(Presentation) 開發(fā),將第二個頁面投屏到副屏上。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

1. 背景

最近開發(fā)的一個項目,有兩個屏幕,需要將第二個頁面投屏到副屏上,
這就需要用到Android的雙屏異顯(Presentation)技術(shù)了,研究了一下,這里做下筆記。
我們那個副屏是一塊汽車的后視鏡(流媒體后視鏡),是一塊長條塊的屏幕,分辨率是400 * 1920 px。

如何將需要顯示的內(nèi)容正確擺放地顯示到這塊屏幕上,是我們開發(fā)中的一個重點(diǎn)。
并且,我們是使用平板橫屏進(jìn)行開發(fā)的,對于橫屏情況下雙屏異顯的處理,也是我們開發(fā)中的一個重點(diǎn)。

我們先來了解一下雙屏異顯(Presentation)技術(shù)是什么 ?
Android Presentation是Android系統(tǒng)中的一個顯示設(shè)備,
它可以在同一時間連接多個顯示設(shè)備,并且可以在不同的顯示設(shè)備上顯示不同的內(nèi)容。
它可以通過HDMI或VGA等接口連接外部顯示器, 從而擴(kuò)展或切換屏幕。
使用Presentation,可以在不同的屏幕上顯示不同的內(nèi)容, 例如在投影儀上顯示演示文稿,同時在筆記本上顯示備注。
這可以更好地展示信息,提高演示效果。

2. 創(chuàng)建主屏布局

主屏就用MainActivity就好

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        //...
    }
}

3. 創(chuàng)建副屏布局

這里,繼承了MyPresentation接口
其中有

class MyPresentation(outerContext: Context, display: Display) :
    Presentation(outerContext, display) {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.dialog_normal)//綁定副屏顯示的布局
    }

	//顯示時調(diào)用
    override fun onStart() {
        super.onStart()
    }


    //消失時調(diào)用
    override fun onStop() {
        super.onStop()
    }
}

4. 將頁面投屏到副屏上

投屏到副屏上有多種方式,我們只需要在MainActivity中去調(diào)用這些代碼就可以了。

4.1 方式一 : MediaRouter

MediaRouter mediaRouter = (MediaRouter) getSystemService(Context.MEDIA_ROUTER_SERVICE);
MediaRouter.RouteInfo route = mediaRouter.getSelectedRoute(MediaRouter.ROUTE_TYPE_LIVE_AUDIO);
if (route != null) {
    Display presentationDisplay = route.getPresentationDisplay();
    if (presentationDisplay != null) {
        MyPresentation myPresentation = new MyPresentation(MainActivity.this, presentationDisplay);
        myPresentation.show();
    }
}

4.2 方式二 : DisplayManager

DisplayManager mDisplayManager = (DisplayManager) getSystemService(Context.DISPLAY_SERVICE);
Display[] displays = mDisplayManager.getDisplays();
if (displays.length > 1) {
   //displays[0] 主屏,displays[1] 副屏
   MyPresentation myPresentation = new MyPresentation(MainActivity.this, displays[1]);
   myPresentation.show();
}

5. 橫屏狀態(tài)下雙屏異顯的處理

在我們那個副屏上,副屏的顯示邏輯是,主屏是豎屏,副屏就以副屏顯示,主屏是橫屏,副屏就以橫屏顯示。
如下圖所示
android presentation,Android日常經(jīng)驗,android,雙屏異顯,Presentation,副屏,投屏

而我們想要達(dá)到的效果是,主屏是橫屏,而主屏是豎屏。
后來,我們想到了一個辦法,就是搞兩個Activity,
Activity1負(fù)責(zé)顯示主屏的頁面,而Activity2負(fù)責(zé)副屏的顯示。
首先啟動Activity2,然后迅速啟動Activity1,當(dāng)Activity1關(guān)閉的時候,也去關(guān)閉Activity1,
這樣就可以實(shí)現(xiàn)主屏和副屏方向顯示不一樣的情況了。

6. 將需要顯示的內(nèi)容正確擺放到副屏上

由于我們的副屏是一塊長條塊的屏幕,分辨率是400 * 1920 px,我們現(xiàn)在主屏上是橫屏顯示,
而副屏通過上述的操作,顯示的是豎屏。
android presentation,Android日常經(jīng)驗,android,雙屏異顯,Presentation,副屏,投屏
而我們真正期望顯示的內(nèi)容是藍(lán)色這部分
android presentation,Android日常經(jīng)驗,android,雙屏異顯,Presentation,副屏,投屏

所以,我們需要對View做一下旋轉(zhuǎn)并位移

val rotation: ObjectAnimator = 
	ObjectAnimator.ofFloat(binding.textureView, "rotation", 0f, 90f)
val translationX: ObjectAnimator =
    ObjectAnimator.ofFloat(binding.textureView, "translationX", 0f, -720F)
val translationY: ObjectAnimator =
    ObjectAnimator.ofFloat(binding.textureView, "translationY", 0f, 420F)
val animatorSet = AnimatorSet()
animatorSet.playSequentially(rotation, translationX, translationY)
animatorSet.duration = 0
animatorSet.start()

最終顯示為這樣
android presentation,Android日常經(jīng)驗,android,雙屏異顯,Presentation,副屏,投屏

7. 其他

7.1 沒有副屏的情況下,如何調(diào)試 ?

如果手頭上沒有副屏,可以在開發(fā)者選項中,打開模擬輔助顯示設(shè)備
android presentation,Android日常經(jīng)驗,android,雙屏異顯,Presentation,副屏,投屏

這里我們可以選擇1080P720P、4K等都是可以的

android presentation,Android日常經(jīng)驗,android,雙屏異顯,Presentation,副屏,投屏

選擇后,顯示出來的虛擬副屏如下所示

android presentation,Android日常經(jīng)驗,android,雙屏異顯,Presentation,副屏,投屏
這樣,我們在沒有真實(shí)的副屏的情況下,就可以通過虛擬的副屏進(jìn)行調(diào)試了。

7.2 雙屏異顯的應(yīng)用場景

Android Presentation 可以用于以下場景:

  • 酒店登記信息:酒店員工可以通過一個屏幕進(jìn)行操作,而顧客則可以通過另一個屏幕查看相關(guān)信息。
  • 醫(yī)療設(shè)備:一些醫(yī)療設(shè)備可能需要同時連接多個屏幕,以便醫(yī)生能夠同時查看多個病人的信息。
  • 演示文稿:演示者可以在一個屏幕上播放演示文稿,同時在另一個屏幕上顯示備注或相關(guān)數(shù)據(jù)。
  • 多屏協(xié)同:多個屏幕可以連接在一起,每個屏幕上可以顯示不同的內(nèi)容,提高多任務(wù)處理效率。

所以說Android的雙屏異顯在特定領(lǐng)域還是很有用的。

7.3 本文源碼下載

本文Demo下載地址 : Android 雙屏異顯(Presentation) 開發(fā)示例Demo

7.4 參考

感謝
Android 雙屏異顯實(shí)現(xiàn)的三種方式
Android Presentation實(shí)現(xiàn)雙屏異顯
Presentation 官方文檔文章來源地址http://www.zghlxwxcb.cn/news/detail-784054.html

到了這里,關(guān)于Android 雙屏異顯(Presentation) 開發(fā),將第二個頁面投屏到副屏上的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Hadoop的第二個核心組件:MapReduce框架第二節(jié)

    Hadoop的第二個核心組件:MapReduce框架第二節(jié)

    1、客戶端在執(zhí)行MR程序時,客戶端先根據(jù)設(shè)置的InputFormat實(shí)現(xiàn)類去對輸入的數(shù)據(jù)文件進(jìn)行切片(getSplits),如果沒有設(shè)置InputFormat實(shí)現(xiàn)類,MR程序會使用默認(rèn)的實(shí)現(xiàn)類(TextInputFormat–FileInputFormat的子類)進(jìn)行切片規(guī)劃,生成一個切片規(guī)劃文件 2、客戶端的切片規(guī)劃文件生成以后

    2024年02月09日
    瀏覽(29)
  • pytorch學(xué)習(xí)——第二個模型(邏輯回歸)

    pytorch學(xué)習(xí)——第二個模型(邏輯回歸)

    參考該博客系統(tǒng)學(xué)習(xí)Pytorch筆記二:Pytorch的動態(tài)圖、自動求導(dǎo)及邏輯回歸 c l a s s = { 0 0.5 y 1 0.5 ≤ y class=left{ begin{array}{rcl} 0 {0.5 y}\\\\ 1 {0.5 le y}\\\\ end{array} right. c l a ss = { 0 1 ? ? 0.5 y 0.5 ≤ y ? 根據(jù)這個y的取值進(jìn)行分類的,當(dāng)取值小于0.5, 就判別為類別0, 大于0.5, 就判別

    2024年02月16日
    瀏覽(15)
  • SQL面試題:第二個優(yōu)化案例

    今天繼續(xù)給大家分享一個 SQL 優(yōu)化案例。 已知表結(jié)構(gòu)如下: 請問下面的查詢語句應(yīng)該如何優(yōu)化? 首先,這個查詢的作用是統(tǒng)計每個客戶的訂單金額匯總,數(shù)據(jù)來自 orders 表;最后按照客戶名稱排序,名稱來自 customer 表,兩個表通過 c_custkey 字段關(guān)聯(lián)。看一下執(zhí)行計劃: orde

    2024年02月14日
    瀏覽(17)
  • 在 Unity 中引入第二個敵人運(yùn)動

    在 Unity 中引入第二個敵人運(yùn)動

    這里的練習(xí)演示了敵人額外移動的實(shí)現(xiàn),該移動從屏幕左端角以傾斜角度開始,在到達(dá)屏幕近一半時,傾斜到另一個角度以退出窗口。 在進(jìn)一步討論之前,請確保敵人和生成管理器(spawn manager)對象處于良好狀態(tài),因為需要它們在此處添加此功能。 這是高級偽代碼。 首先在檢

    2024年01月22日
    瀏覽(32)
  • 面向?qū)ο蟮牡诙€基本特征:繼承011026

    生活中: ? ? ? ? 繼承 --- 延續(xù) ? ? ? ? ? ? ? ? --- 擴(kuò)展 代碼中: ? ? ? ? 繼承 --- 重復(fù)使用已有的類的代碼(復(fù)用) ? ? ? ? ? ? ? ? --- 擴(kuò)展已有類的代碼(擴(kuò)展) ① 代碼的復(fù)用和擴(kuò)展 ② 滿足is - a 的關(guān)系 事物的分類來說,子類別的關(guān)系 Student is a Person. Teacher is a Pe

    2024年02月05日
    瀏覽(27)
  • 超級國際象棋:第二個里程碑已完成

    超級國際象棋:第二個里程碑已完成

    獲取Cartesi資助的項目的最新進(jìn)展,現(xiàn)在將完全去中心化的Web3國際象棋帶到你的手中 “Ultrachess是一個完全基于區(qū)塊鏈的國際象棋應(yīng)用程序,由Cartesi Rollup技術(shù)支持,允許用戶將真實(shí)價值投入到比賽中,不僅僅是他們的Elo分?jǐn)?shù)。 nbsp; 此外,Ultrachess引入了一個在當(dāng)前國際象棋范

    2024年02月12日
    瀏覽(18)
  • 三星平板第二個屏幕連接后黑屏閃退

    三星平板第二個屏幕連接后黑屏閃退

    三星平板有個功能叫 第二個屏幕 ,可以連接電腦當(dāng)擴(kuò)展屏使用,具體方法為按下下面的按鈕,然后在windows電腦上點(diǎn)擊 win+K ,選擇自己的平板電腦即可連接。但是個人使用時卻出現(xiàn)了 點(diǎn)擊連接后,平板黑屏一段時間然后閃退,同時電腦顯示無法連接到設(shè)備 的問題。 首先 更

    2024年02月01日
    瀏覽(109)
  • Hadoop的第二個核心組件:MapReduce框架第四節(jié)

    Hadoop的第二個核心組件:MapReduce框架第四節(jié)

    MapReduce可以對海量數(shù)據(jù)進(jìn)行計算,但是有些情況下,計算的結(jié)果可能來自于多個文件,每個文件的數(shù)據(jù)格式是不一致,但是多個文件存在某種關(guān)聯(lián)關(guān)系,類似于MySQL中外鍵關(guān)系,如果想計算這樣的結(jié)果,MR程序也是支持的。這種計算我們稱之為join計算。 MR的join根據(jù)join數(shù)據(jù)的位

    2024年02月09日
    瀏覽(24)
  • Hadoop的第二個核心組件:MapReduce框架第三節(jié)

    Hadoop的第二個核心組件:MapReduce框架第三節(jié)

    InputFormat階段 :兩個作用 負(fù)責(zé)對輸入的數(shù)據(jù)進(jìn)行切片,切片的數(shù)據(jù)和Mapper階段的MapTask的數(shù)量是相對應(yīng)的。 負(fù)責(zé)MapTask讀取切片數(shù)據(jù)時,如何將切片的數(shù)據(jù)轉(zhuǎn)換成為Key-value類型的數(shù)據(jù),包括key-value的數(shù)據(jù)類型的定義。 Mapper階段 作用處理每一個切片數(shù)據(jù)的計算邏輯。 map方法的執(zhí)

    2024年02月09日
    瀏覽(24)
  • ChatGPT引爆變革:第二個被顛覆的行業(yè)——在線客服

    ChatGPT引爆變革:第二個被顛覆的行業(yè)——在線客服

    引言:隨著人工智能技術(shù)的不斷發(fā)展,許多行業(yè)都面臨著前所未有的變革。ChatGPT,一種先進(jìn)的自然語言處理技術(shù),在內(nèi)容創(chuàng)作領(lǐng)域取得了顯著成果。如今,它正逐漸進(jìn)入另一個領(lǐng)域——在線客服。本文將探討ChatGPT如何改變在線客服行業(yè),以及它為企業(yè)和消費(fèi)者帶來的機(jī)遇與

    2024年02月07日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包