真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

android如何使用activity鎖定手機橫屏

這篇文章為大家分享android使用activity鎖定手機橫屏的方法。文章還介紹了activity的其他運用方式,希望大家通過這篇文章能有所收獲。

創(chuàng)新互聯(lián)建站長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為慈利企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計,慈利網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

一、鎖定Activity運行時屏幕方向,如下圖(演示鎖定橫屏):

android如何使用activity鎖定手機橫屏

我們可以通過以下兩種方式實現(xiàn)鎖定Activity運行時屏幕的方向:

(1)通過修改AndroidMainfest.xml配置文件

修改Android/app/mainfests/AndroidMainfest.xml下的配置文件如下:

節(jié)點的android:screenOrientation屬性可以完成該任務(wù)(portrait為保持豎屏,landscape為保持橫屏)

 

 1  3      9         12             13                 14 15                 16             17         18     19 

 

(2)通過java代碼實現(xiàn):

 1 import android.content.pm.ActivityInfo; 2 import android.os.Bundle; 3 import android.support.annotation.Nullable; 4 import android.support.v7.app.AppCompatActivity; 5 /** 6  * Created by panchengjia on 2016/12/9. 7  */ 8 public class Test extends AppCompatActivity { 9     @Override10     protected void onCreate(@Nullable Bundle savedInstanceState) {11         super.onCreate(savedInstanceState);12         setContentView(R.layout.activity_main2);13         //添加setRequestedOrientation方法實現(xiàn)鎖定橫屏(portrait為保持豎屏,landscape為保持橫屏)14         setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);15     }16 }

現(xiàn)在第一種需求通過修改配置文件以及java代碼的方式實現(xiàn),但這里要注意的是當(dāng)同時在配置文件以及java文件中設(shè)置了方向鎖定時,系統(tǒng)會以配置文件設(shè)置為準(zhǔn)(可以理解為配置文件優(yōu)先級高于java代碼)

 

二、Activity轉(zhuǎn)換方向時數(shù)據(jù)的保存

 

下面我們展示Activity轉(zhuǎn)換方向時未保存數(shù)據(jù)的情況:

演示中,我們通過記錄按鈕的點擊次數(shù)(土司)來判斷數(shù)據(jù)是否被保存

android如何使用activity鎖定手機橫屏

我們發(fā)現(xiàn)當(dāng)屏幕(Acticity)由橫屏轉(zhuǎn)為豎屏?xí)r,數(shù)據(jù)未實現(xiàn)保存,繼續(xù)從0開始計數(shù)點擊次數(shù)。

當(dāng)我們設(shè)置保存數(shù)據(jù)后,演示情況如下:

android如何使用activity鎖定手機橫屏

保存數(shù)據(jù)后,點擊數(shù)土司會繼續(xù)豎屏狀態(tài)的數(shù)據(jù)更新,而不是從零重新開始。

針對數(shù)據(jù)保存我們同樣有兩種方法實現(xiàn),分別為在java代碼中使用onSaveInstanceState()方法以及在屬性。

下面我們詳細分析這兩種方法的實現(xiàn):

 

(1)onSaveInstanceState詳解

 

實現(xiàn)代碼如下(這里寫了Activity的全部生命周期,并打印log用于分析性能):

 1 import android.support.v7.app.AppCompatActivity; 2 import android.os.Bundle; 3 import android.util.Log; 4 import android.view.View; 5 import android.widget.Toast; 6 /** 7  * Created by panchengjia on 2016/12/9. 8  */ 9 public class Main2Activity extends AppCompatActivity {10     int num=1;//初始點擊次數(shù)為111     @Override12     protected void onCreate(Bundle savedInstanceState) {13         super.onCreate(savedInstanceState);14         setContentView(R.layout.activity_main2);15         if(savedInstanceState!=null){16             num=savedInstanceState.getInt("data");17         }18         Log.i("Tag","onCreate");19     }20     //設(shè)置點擊事件土司記錄數(shù)據(jù)21     public void show(View v){22         Toast.makeText(this, num++ +"", Toast.LENGTH_SHORT).show();23     }24     @Override25     protected void onSaveInstanceState(Bundle outState) {26         super.onSaveInstanceState(outState);27         outState.putInt("data",num);28         Log.i("Tag","onSaveInstanceState");29     }30     @Override31     protected void onStart() {32         super.onStart();33         Log.i("Tag","onStart");34     }35     @Override36     protected void onResume() {37         super.onResume();38         Log.i("Tag","onResume");39     }40     @Override41     protected void onRestart() {42         super.onRestart();43         Log.i("Tag","onRestart");44     }45     @Override46     protected void onPause() {47         super.onPause();48         Log.i("Tag","onPause");49     }50     @Override51     protected void onStop() {52         super.onStop();53         Log.i("Tag","onStop");54     }55     @Override56     protected void onDestroy() {57         super.onDestroy();58         Log.i("Tag","onDestroy");59     }60 }

功能實現(xiàn)的核心代碼為protected void onSaveInstanceState(Bundle outState)方法。Activity旋轉(zhuǎn)前后的Log如下:

android如何使用activity鎖定手機橫屏

從Log中可以得知屏幕(Acticity)旋轉(zhuǎn)時,會銷毀之前的Activity,然后重建旋轉(zhuǎn)后的Activity。

(2)修改AndroidManifest.xml配置文件

在AndroidManifest.xml中添加configChanges屬性,如下:

 1  2  4     10         13             14                 15 16                 17             18         19         20     21 

在java中添加對應(yīng)的onConfigurationChanged()方法用于Log打印分析,方法本身在功能實現(xiàn)上無實際意義:

 

1 @Override2 public void onConfigurationChanged(Configuration newConfig) {3    super.onConfigurationChanged(newConfig);4    Log.i("Tag","onConfigurationChanged");5 }

屏幕旋轉(zhuǎn)前后Log如下(演示兩次旋轉(zhuǎn)):

android如何使用activity鎖定手機橫屏

從Log中可以得知屏幕(Acticity)旋轉(zhuǎn)時,使用第二種方法保存數(shù)據(jù)不會銷毀Activity,不用重復(fù)的銷毀建立Activity從而達到優(yōu)化內(nèi)存性能的目的。建議使用這種方法

上文描述的就是android使用activity鎖定手機橫屏的方法,具體使用情況還需要大家自己動手實驗使用過才能領(lǐng)會。如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


新聞標(biāo)題:android如何使用activity鎖定手機橫屏
分享網(wǎng)址:http://weahome.cn/article/jehcdi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部