當前位置:法律諮詢服務網 - 法律諮詢 - 安卓漫畫APP的豎屏橫屏切換技術如何實現?

安卓漫畫APP的豎屏橫屏切換技術如何實現?

,禁止橫豎屏轉換。

Android豎屏切換在手機開發中很常見。為了避免豎屏切換帶來不必要的麻煩,很多軟件通常會禁止豎屏切換。

這是通過在AndroidManifest.xml的活動中設置android:screenOrientation屬性的值來實現的

例如以下設置

android:screenOrientation= "縱向"

無論手機如何變化,具有該屬性的活動都會是豎屏顯示。

Android:screen orientation = " landscape ",這是壹個水平顯示。

上面的修改也可以通過類似下面的代碼在Java代碼中設置。

setrequesteorientation(activity info。屏幕_方向_橫向)

另外,android中每壹次屏幕切換都會重啟活動,所以妳要在活動被破壞前保存當前活動的狀態,在活動再次創建時加載配置,這樣進行中的遊戲就不會自動重啟了!

二、橫屏和豎屏切換

如果您希望軟件在水平和垂直屏幕之間切換,可能需要不同的布局,因為水平和垂直屏幕的高度和寬度會發生變化。您可以通過以下兩種方式切換布局:

1)在res目錄下創建layout-land和layout-port目錄,對應的布局文件名保持不變,比如main.xml. layout-land是橫屏的布局,Layout,layout-port是豎屏的布局,其余的不需要。當水平和垂直屏幕切換時,程序調用Activity的onCreate方法,從而加載相應的布局。

2)如果布局資源沒有如上設置,可以通過java代碼判斷當前屏幕是水平還是垂直,然後加載相應的xml布局文件。因為當屏幕變成橫向時,系統會再次調用當前活動的onCreate方法。可以在onCreate中放入以下方法來檢查當前方向,然後可以讓setContentView加載不同的布局xml。

if(this.getResources()。getConfiguration()。方位= =配置。方向_橫向)

{

Log.i("info "," landscape ");//水平屏幕

} else if(this.getResources()。getConfiguration()。方位= =配置。方向_縱向)

{

Log.i("info "," portrait ");//垂直屏幕

}

第三,通過onConfigurationChanged攔截橫豎屏變換。

根據第二個操作,活動將調用onPause-& gt;onStop-& gt;onde story-& gt;onCreate-& gt;onStart-& gt;OnResume,為此涉及到內容和數據的存儲和讀取,否則屏幕切換前的內容就會消失。很多時候,這樣的結果讓程序變得繁瑣。為此,Android提供了在manifest中設置android:configChanges屬性,這樣活動就不會繼續上面的重建過程。在Android項目的Mainfest.xml中配置activity:Android:config changes = " keyboard hidden | orientation"。橫豎屏切換後,不會執行OnCreat函數,但會調用onConfigurationChanged(),這樣就可以控制橫豎屏了。用戶可以在活動或視圖的OnConfigurationChanged(配置新配置)函數中獲取當前屏幕參數。至於它的調用順序,類似於touch time的傳輸順序,但是它沒有消費事件的概念,會依次調用每個onConfigurationChanged函數。

您需要重寫Activity的onConfigurationChanged方法。實現方法如下,沒有太多內容:

@覆蓋

public void onConfigurationChanged(配置新配置){

super . onconfigurationchanged(new config);

if (this.getResources()。getConfiguration()。方位==配置。方向_橫向){

//土地什麽都不做就可以了

} else if (this.getResources()。getConfiguration()。方位==配置。ORIENTATION_PORTRAIT) {

//端口什麽都不做就可以了

}

}

需要註意的是,onConfigurationChanged函數中只能獲得橫豎屏切換後的參數,而新的布局以及控件的大小和位置信息在該函數中無法獲得。如果要處理大小和位置信息,必須通過消息異步調用或延遲。

第四,完全禁止翻轉

當然,如果想徹底禁止翻轉,可以將android:screenOrientation的屬性設置為nosensor,這樣就可以忽略重力感應帶來的麻煩。但是在模擬器上不行,在真機上是正確的。

這裏有個小知識。在Android模擬器中,快捷鍵“Ctrl+F11/F12”可以實現屏幕切換。

第五,適應性轉換

想讓它橫屏啟動就橫屏顯示,豎屏顯示就豎屏顯示,然後手機在橫屏和豎屏切換的時候就不能用了。如何解決這個問題?

第壹:在Mainfest.xml中追加。

Android:screen orientation = " sensor " Android:config changes = " orientation | keyboard hidden "

這兩個屬性。

  • 上一篇:為什麽打不通12300(工信部24小時投訴電話)
  • 下一篇:10山東省有哪些學校是三本或二本連續學校?
  • copyright 2024法律諮詢服務網