㈠ 安卓手機怎樣換為橫屏
方法一:在androidManifest.xml中配置
假設不想讓軟體在橫豎屏之間切換,最簡單的辦法就是在項目的AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation屬性。他有下面幾個參數:
"unspecified":默認值 由系統來推斷顯示方向.判定的策略是和設備相關的,所以不同的設備會有不同的顯示方向.
"landscape":橫屏顯示(寬比高要長)
"portrait":豎屏顯示(高比寬要長)
"user":用戶當前首選的方向
"behind":和該Activity以下的那個Activity的方向一致(在Activity堆棧中的)
"sensor":有物理的感應器來決定。假設用戶旋轉設備這屏幕會橫豎屏切換。
"nosensor":忽略物理感應器。這樣就不會隨著用戶旋轉設備而更改了("unspecified"設置除外)。
方法二:在java代碼中設置
設置橫屏代碼:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//橫屏
設置豎屏代碼:setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//豎屏
由於橫屏有兩個方向的橫法,而這個設置橫屏的語句,假設不是默認的橫屏方向,會把已經橫屏的屏幕旋轉180°。
所以能夠先推斷是否已經為橫屏了。假設不是再旋轉,不會讓用戶認為轉的莫名其妙啦!代碼例如以下:
if(this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
三:
1.直接新建兩個布局文件,剩下的就什麼也不用管了:右鍵單擊『res』文件夾 -> 'new' -> 'Android resource directory'; 將 Directory name 填寫 layout-land,Resource type 選擇layout,這是建立了一個橫屏的布局文
㈡ 安卓手機如何開啟橫屏模式
1.先找到並打開設置
拓展資料
Android 設置橫屏模式顯示,橫屏模式大部分情況能彌補豎屏的不足——字體小、鍵盤小、畫幅比例不合適,而且橫屏模式下能提供更華麗、更流暢的感官體驗,android 橫屏,android landscape mode ,android 強制橫屏,android 強制豎屏,android 橫屏布局,android 設置全屏模式。
㈢ 安卓系統怎麼設置橫屏豎屏
上劃手機,然後彈出界面有一個鎖定橫屏和豎屏一般來說鎖定的就只能橫屏將其解鎖就能豎屏了。
㈣ android怎麼設置橫豎屏切換
方法一:
1、首先在android手機打開「設置」這個選項的,點擊「顯示」這個功能;
㈤ android 的界面布局 怎麼適應不同解析度的手機 以及橫豎屏間的切換
各種Android操作系統的手機簡直就是琳琅滿目,屏幕解析度的差異可想而知。目前比較主流的有WVGA=800x480,HVGA=480x320,另外的還有QVGA=320x240。當然還有魅族M9的DVGA=960x640,還有蛋疼的摩托羅拉的FWVGA=854x480。
其實,在你layout的xml文件中,編寫的時候是不是用了許多的padding呢?如果是,那你就蛋疼了。因為這樣的布局永遠是無法適應所有手機屏幕的。
正確的做法應該是使用的是weight屬性。將你控制項的layout中的width、height設置為fill-parent,不要使用wrap——content。因為wrap-content的大小是不固定的。而weight(權重)這個屬性很好的解決了這個問題。
當包裹在控制項外面的Layout的width、height屬性都設置為fill-parent時,可以利用weight的反比特性。即如果控制項A設置weight為5,控制項B設置weight為7,那麼A所佔的空間為5/(5+7),B所佔的空間為7/(5+7)。這樣的反比屬性對任何解析度下的手機都是合適的。
當然,字體就不行了。那怎麼保證字體能夠跟布局一樣能夠自適應呢?
呵呵,很簡單,就是在你的res文件夾中創建一個文件夾,叫做values-320x240。其中320x240是你手機屏幕的解析度,根據你手機屏幕的情況做不同的命名,例如values-800x480。在該文件夾下創建一個dimens.xml文件,定義各種字體的大小。那麼系統就會自動根據你手機屏幕的解析度去調用響應的文件夾。
另外,值得提醒的是,記得在你默認的values文件下的dimens.xml文件中也要寫上相應的字體大小哦,因為當系統無法認識你手機屏幕大小的時候,它會自動去找你默認文件中的
東西,沒有寫的話程序會崩潰。
************************************************************分割線************************************************************
在看下面內容之前首先請看你SDK文檔中以下這篇文章
其實google在解析度適應性的東西已經寫的很清楚了,只是我們很多人沒去看而已
以下是結論:
屏幕解析度:1024x600
density:1(160)
文件夾:values-mdpi-1024x600
屏幕解析度:1024x600
density:1.5(240)
文件夾:values-hdpi-683x400 由1024/1.5 600/1.5得到,需要四捨五入。
屏幕解析度:800x480
density:1(160)
文件夾:values-mdpi-800x480
屏幕解析度:800x480
density:1.5(240)
文件夾:values-hdpi-533x320 由800/1.5 480/1.5得到,需要四捨五入。
以此類推
一般情況下需要創建出values 、values-mdpi 、 values-hdpi文件夾,以備在一些沒有規定的尺寸屏幕上找不到資源的情況。
然後在裡面使用不同的dimens文件,Layout中不要使用顯示的數字,所有的尺寸定義全都援引dimens裡面的內容。
這樣能夠保證深度UI定製的情況
另外在工程的default.properties中如果split.density=false,則解析度適配的時候文件夾命名不需要與scale相除
例
屏幕解析度:800x480
density:1.5(240)
文件夾:values-hdpi-800x480
************************************************************分割線************************************************************
關於dimens
位置:res\values
單位:px Pixel 以畫面的像素為單位;
in Inches以畫面的多少英寸為單位;
mm Millimeter以畫面的多少毫米為單位;
pt Points 一點為1/72英寸;
dp或dip Density-indepentdent 為160dpi屏幕的一個pixel;
ap Scale-independent Pixels 隨屏幕尺寸改變的一個pixel;
1.drawable: 存放不同解析度對應圖片
在2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個,這三個主要是為了支持多解析度。
drawable- hdpi、drawable- mdpi、drawable-ldpi的區別:
(1)drawable-hdpi裡面存放高解析度的圖片,如WVGA (480x800),FWVGA (480x854)
(2)drawable-mdpi裡面存放中等解析度的圖片,如HVGA (320x480)
(3)drawable-ldpi裡面存放低解析度的圖片,如QVGA (240x320)
系統會根據機器的解析度來分別到這幾個文件夾裡面去找對應的圖片。
在2.1之前的版本可以通過drawable-800x480, drawable-480x320 等方式實現。
2:layout:放置對應不同解析度的布局
創建不同的layout文件夾, layout-800x480,layout-480x320, 系統會根據屏幕的大小自己選擇合適的layout進行使用。
另外:可以在res目錄下建立layout-port和layout-land兩個目錄,裡面分別放置豎屏和橫屏兩種布局文件。
下面列出主流的android機型有:
240x320低端,國產入門級採用,例如HTC G4,G8
320x480中端,大部分基於此解析度,例如HTC G1,G2,G3,G6, MOTO ME600, SAMSUNG I7500
480x800中高端,大部分基於此解析度,例如HTC G5,G7, MOTO MT810
480x854MOTO特有的,例如Droid, Milestone, XT800
960x640, 魅族M9
㈥ 如何設置android界面橫屏顯示
全屏
在Activity的onCreate方法中的setContentView(myview)調用之前添加下面代碼
requestWindowFeature(Window.FEATURE_NO_TITLE);//隱藏標題
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//設置全屏
橫屏
按照下面代碼示例修改Activity的onResume方法
@Override
protected void onResume() {
/**
* 設置為橫屏
*/
if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
super.onResume();
}
或者在配置文件中對Activity節點添加android:screenOrientation屬性(landscape是橫向,portrait是縱向)
android:launchMode="singleTask" android:screenOrientation="portrait">
要設置成豎屏設置成 SCREEN_ORIENTATION_PORTRAIT
// ----------------
常亮
view.setKeepScreenOn(true)
不加任何旋轉屏幕的處理代碼的時候,旋轉屏幕將會導致系統把當前activity關閉,重新打開。
如果只是簡單的界面調整,我們可以阻止此問題的發生,屏幕旋轉而自己調整屏幕的元素重構。
首先我們需要修改AndroidManifest.xml文件:
<activity android:name=".Magazine">
</activity>
//修改為:
<activity android:name=".Magazine"
android:configChanges="orientation|keyboard">
</activity>
這樣是讓程序能夠響應旋轉屏幕的事件。
然後重寫onConfigurationChanged方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
Log.v(" == onConfigurationChanged");
processLayout();
}
//----------------------------
在我們用Android開發過程中,會碰到Activity在切換到後台或布局從橫屏LANDSCAPE切換到PORTRAIT,會重新切換Activity會觸發一次onCreate方法。
在Android開發中這種情況視可以避免的,我們可以在androidmanifest.xml中的activit元素加入這個屬性 android:configChanges="orientation|keyboardHidden" 就能有效避免oncreat方法的重復載入,
androidmanifest.xml內容如下:紅色字體為添加部分
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.demo"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".DemoGPS"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-library android:name="com.google.android.maps" />
</application>
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
</manifest>
同時在Activity的Java文件中重載onConfigurationChanged(Configuration newConfig)這個方法,這樣就不會在布局切換或窗口切換時重載等方法。代碼如下:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//land
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
//port
}
}
//------------------------------------------------------
關於Android中Activity的橫豎屏切換問題可以通過AndroidManifest.xml文件中的Activity來配置:
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"sensor" | "nonsensor"]
screenOrientation 用來指定Activity的在設備上顯示的方向,每個值代表如下含義:
"unspecified" 默認值 由系統來判斷顯示方向.判定的策略是和設備相關的,所以不同的設備會有不同的顯示方向.
"landscape" 橫屏顯示(寬比高要長)
"portrait" 豎屏顯示(高比寬要長)
"user" 用戶當前首選的方向
"behind" 和該Activity下面的那個Activity的方向一致(在Activity堆棧中的)
"sensor" 有物理的感應器來決定。如果用戶旋轉設備這屏幕會橫豎屏切換。
"nosensor" 忽略物理感應器,這樣就不會隨著用戶旋轉設備而更改了 ( "unspecified"設置除外 )。
更多安卓例子請去360手機助手下載安卓學習手冊,裡面有橫豎排例子,源碼,例子隨便看。
㈦ android系統強制橫豎屏實現
橫屏:
按照下面代碼示例修改Activity的onResume方法
@Override
protected void onResume() {
/**
* 設置為橫屏
*/
if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}
super.onResume();
}
或者在配置文件中對Activity節點添加android:screenOrientation屬性(landscape是橫向,portrait是縱向)
android:launchMode="singleTask" android:screenOrientation="portrait">
豎屏:
要設置成豎屏將上面代碼中,屬性設置成 SCREEN_ORIENTATION_PORTRAIT即可。
㈧ android 橫屏和豎屏布局不同時,需要onCreate()重新載入,如何不重新載入讓數據保存,並切換不同的布局
Activity橫豎屏切換的時候會重新onCreate,如果不想重裝載,需要以下設置:
在AndroidManifest.xml的每一個需要禁止轉向的Activity配置中加入android:screenOrientation=」landscape」屬性。
參數說明:
landscape = 橫向
portrait = 縱向
避免在轉屏時重啟Activity
android中每次屏幕方向切換時都會重啟Activity,所以應該在Activity銷毀前保存當前活動的狀態,在Activity再次 Create的時候載入配置,那樣,進行中的游戲就不會自動重啟了!
要避免在轉屏時重啟Activity,可以通過在AndroidManifest.xml文件中重新定義方向(給每個Activity加上android:configChanges=」keyboardHidden|orientation」屬性)。
在需要控制屏幕顯示方向的Activity中重寫onConfigurationChanged(Configuration newConfig)方法,這樣在轉屏時就不會重啟Activity了。
㈨ android開發橫豎屏問題
Android橫屏豎屏設置
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//設置成全屏模式
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE););//強制為橫屏
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);//豎屏
我做的東西裡面還用到了去掉標題欄。
我也貼出來
requestWindowFeature(Window.FEATURE_NO_TITLE);
垂直居中:
android:layout_centerVertical="true"
水平居中:
android:layout_centerHorizontal="true"
1.hideStatusbarAndTitlebar()隱藏statusbar和titlebar.
private void hideStatusbarAndTitlebar() {
final Window win = getWindow();
// No Statusbar
win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// No Titlebar
requestWindowFeature(Window.FEATURE_NO_TITLE);
}
2.設置屏幕顯示模式ScreenOrientation.
在activity里設置android:screenOrientation的值。
android:screenOrientation的屬性有以下值:
unspecified(默 認值,由系統判斷狀態自動切換),The default value. The system chooses the orientation. The policy it uses, and therefore the choices made in specific contexts, may differ from device to device.
landscape,橫屏
portrait,豎屏
user(用戶當前設置的orientation值),The user's current preferred orientation.
behind(下一個要顯示的Activity的orientation值),The same orientation as the activity that's immediately beneath it in the activity stack.
sensor(傳 感器的方向),The orientation determined by a physical orientation sensor. The orientation of the display depends on how the user is holding the device; it changes when the user rotates the device.
nosensor(不 使用感測器,這個效果差不多等於unspecified).An orientation determined without reference to a physical orientation sensor. The sensor is ignored, so the display will not rotate based on how the user moves the device. Except for this distinction, the system chooses the orientation using the same policy as for the "unspecified" setting.
3.水平/垂直居中的方法.
設置parent的android:gravity為"center"。
4.獲得當前屏幕寬高的方法.
Display display = getWindowManager().getDefaultDisplay();
Config.screenWidth = display.getWidth();
Config.screenHeight = display.getHeight();
㈩ android 強制設置橫屏 判斷是橫屏還是豎屏
判斷activity 是橫屏還是豎屏
方法 1: //根據設備配置信息
Configuration cf= this.getResources().getConfiguration(); //獲取設置的配置信息
int ori = cf.orientation ; //獲取屏幕方向
if(ori == cf.ORIENTATION_LANDSCAPE){
//橫屏
}else if(ori == cf.ORIENTATION_PORTRAIT){
//豎屏
}
方法2: 通過設備解析度還判斷
DisplayMetrics dm = new DisplayMetrics();
mLauncher.getWindowManager().getDefaultDisplay().getMetrics(dm);
mWidth = dm.widthPixels;
mHeight = dm.heightPixels;
if (mHeight > mWidth){//layout port
// 豎屏 .......
}else{//layout land
// 橫屏 .......
}
設置程序 橫屏還是豎屏 有兩種方法 1:通過配置實習 2: 代碼實現
方法2://重寫activity onResume方法
@Override protected void onResume() {
/** * 設置為橫屏 */
if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE){ setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE :橫
//SCREEN_ORIENTATION_PORTRAIT:豎
}
super.onResume();
}
方法2: 配置androidManifest.xml實現
在activity 中加入 android:screenOrientation="landscape" 信息即可 該屬性有兩個值 portrait//豎 landscape//橫
<activity android:name="MainActivity" android:label="@string/app_name" android:screenOrientation="landscape">
</activity>
搞定 快去試試 吧 不過細心的朋友 會發現 咦 當我屏幕的方向 發生變化的時候為啥 activity 的onCreate 怎麼會重新載入呢
原因是: 由於屏幕的旋轉會造出 當然的activity 元素關閉 從而造出activity重新載入 ,顯然這有時候並不是我們要的效果 , 那我們 在看看 如果解決這個問題吧
我們在androidManifest.xml 文件中 activity 節點加入紅色的 屬性
<activity android:name="MainActivity" android:label="@string/app_name" android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden">
</activity>
1、不設置Activity的android:configChanges時,切屏會重新調用各個生命周期,切橫屏時會執行一次,切豎屏時會執行兩次
2、設置Activity的android:configChanges="orientation"時,切屏還是會重新調用各個生命周期,切橫、豎屏時只會執行一次
3、設置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調用各個生命周期,只會執行onConfigurationChanged方法
同時在Activity的Java文件中重載onConfigurationChanged(Configuration newConfig)這個方法,這樣就不會在布局切換或窗口切換時重載等方法。代碼如下:
@Override
public void onConfigurationChanged(Configuration newConfig)
{
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
{
//land
}
else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
{
//port
}
}
//------------------------------------------------------
關於Android中Activity的橫豎屏切換問題可以通過AndroidManifest.xml文件中的Activity來配置:
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"sensor" | "nonsensor"]
screenOrientation 用來指定Activity的在設備上顯示的方向,每個值代表如下含義:
"unspecified" 默認值 由系統來判斷顯示方向.判定的策略是和設備相關的,所以不同的設備會有不同的顯示方向.
"landscape" 橫屏顯示(寬比高要長)
"portrait" 豎屏顯示(高比寬要長)
"user" 用戶當前首選的方向
"behind" 和該Activity下面的那個Activity的方向一致(在Activity堆棧中的)
"sensor" 有物理的感應器來決定。如果用戶旋轉設備這屏幕會橫豎屏切換。
"nosensor" 忽略物理感應器,這樣就不會隨著用戶旋轉設備而更改了 ( "unspecified"設置除外 )。