螢幕的顯示方向有橫排和豎排兩種:
下面的代碼可以為我們自動的控制長寬。
/***<br /> * 根據實際的螢幕長寬,自動的進行豎排或者橫排<br /> */<br />public void autoChange() {<br />DisplayMetrics displayMetrics = new DisplayMetrics();<br />getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);<br />int height = metrics.heightPixels;<br />int width = metrics.widthPixels;</p><p>// getRequestedOrientation方法可以擷取當前activity的排列模式<br />int requestOritation = getRequestedOrientation();</p><p>if (requestOritation == -1) {<br />Toast.makeText(this,<br />"當前activity中沒有設定screenOrientation屬性,根本不能執行翻轉操作",<br />Toast.LENGTH_LONG).show();<br />}<br />else{</p><p>/**<br /> * ActivityInfo.SCREEN_ORIENTATION_PORTRAIT代表豎排<br /> * (另一種形式為在Manifest.xml中為activity配置screenOrientation="portrait")<br /> * ActivityInfo則是一個和我們在Manifest.xml中為activity配置的資訊相關的類<br /> */<br />if(requestOritation==ActivityInfo.SCREEN_ORIENTATION_PORTRAIT&&width>height){<br />// setRequestedOrientation 可以重新設定<br />setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);<br />}<br />// 下邊的代碼省略了</p><p>}</p><p>}
----------------------------------------------------------------------------------
橫排:ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
豎排: ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
擷取當前的排列模式:可以通過在activity中調用getRequestedOrientation()方法擷取,如果我們再AndroidManifest.xml中沒有為該activity設定screenOrientation屬性來初始化排列模式,那麼在編程模式下,無論我們怎麼排列,都是不起作用的。
改變當前的排列模式:setRequestedOrientation()方法。