自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

適配不同分辨率橫屏豎屏

移動開發(fā) Android
Android是基于Linux內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布的手機(jī)操作系統(tǒng)。由于智能手機(jī)的普及,我們也樂于玩轉(zhuǎn)自己的phone。

一:不同的layout

Android手機(jī)屏幕大小不一,有480x320, 640x360, 800x480.怎樣才能讓App自動適應(yīng)不同的屏幕呢?

其實很簡單,只需要在res目錄下創(chuàng)建不同的layout文件夾,比如layout-640x360,layout-800x480,所有的layout文件在編譯之后都會寫入R.Java里,而系統(tǒng)會根據(jù)屏幕的大小自己選擇合適的layout進(jìn)行使用。

二:hdpi、mdpi、ldpi

在之前的版本中,只有一個drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三個,這三個主要是為了支持多分辨率。

drawable- hdpi、drawable- mdpi、drawable-ldpi的區(qū)別:

(1)drawable-hdpi里面存放高分辨率的圖片,如WVGA (480x800),FWVGA (480x854)

(2)drawable-mdpi里面存放中等分辨率的圖片,如HVGA (320x480)

(3)drawable-ldpi里面存放低分辨率的圖片,如QVGA (240x320)

系統(tǒng)會根據(jù)機(jī)器的分辨率來分別到這幾個文件夾里面去找對應(yīng)的圖片。

三:橫屏豎屏

在開發(fā)程序時為了兼容不同平臺不同屏幕,建議各自文件夾根據(jù)需求均存放不同版本圖片。以下步驟是網(wǎng)上流傳的,不過我自己之前是通過圖形化界面實現(xiàn)這個配置,算是殊途同歸,有空我會把圖片貼上來。

還要說明一點:每個activity都有這個屬性screenOrientation,每個activity都需要設(shè)置,可以設(shè)置為豎屏(portrait),也可以設(shè)置為無重力感應(yīng)(nosensor)。

要讓程序界面保持一個方向,不隨手機(jī)方向轉(zhuǎn)動而變化的處理辦法:
 
在AndroidManifest.xml里面配置一下就可以了。加入這一行

  1. android:screenOrientation="landscape" 

例如(landscape是橫向,portrait是縱向):

Java代碼:

  1. <?xml version="1.0" encoding="utf-8"?>      
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"      
  3.       package="com.ray.linkit"      
  4.       android:versionCode="1"      
  5.       android:versionName="1.0">      
  6.     <application android:icon="@drawable/icon" android:label="@string/app_name">      
  7.         <activity android:name=".Main"      
  8.                   android:label="@string/app_name"      
  9.                   android:screenOrientation="portrait">      
  10.             <intent-filter>      
  11.                 <action android:name="android.intent.action.MAIN" />      
  12.                 <category android:name="android.intent.category.LAUNCHER" />      
  13.             </intent-filter>      
  14.         </activity>      
  15.                 <activity android:name=".GamePlay"      
  16.                 android:screenOrientation="portrait"></activity>      
  17.                 <activity android:name=".OptionView"      
  18.                 android:screenOrientation="portrait"></activity>      
  19.     </application>      
  20.     <uses-sdk android:minSdkVersion="3" />      
  21. </manifest>   

另外,android中每次屏幕的切換動會重啟Activity,所以應(yīng)該在Activity銷毀前保存當(dāng)前活動的狀態(tài),在Activity再次Create的時候載入配置,那樣,進(jìn)行中的游戲就不會自動重啟了!

有的程序適合從豎屏切換到橫屏,或者反過來,這個時候怎么辦呢?可以在配置Activity的地方進(jìn)行如下的配置android:screenOrientation="portrait"。這樣就可以保證是豎屏總是豎屏了,或者landscape橫向。

而有的程序是適合橫豎屏切換的。如何處理呢?首先要在配置Activity的時候進(jìn)行如下的配置:android:configChanges="keyboardHidden|orientation",另外需要重寫Activity的onConfigurationChanged方法。實現(xiàn)方式如下,不需要做太多的內(nèi)容:

  1. @Override  
  2.         public void onConfigurationChanged(Configuration newConfig) {  
  3.                 super.onConfigurationChanged(newConfig);  
  4.                 if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {  
  5.                         // land do nothing is ok  
  6.                 } else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {  
  7.                         // port do nothing is ok  
  8.                 }  
  9.         }   

【編輯推薦】

Android學(xué)習(xí)筆記:Activity跳轉(zhuǎn)

Android開發(fā)中插入新的Activity

Android開發(fā):Activity之間的傳值

Android趣事五則 不“地道”的Linux

責(zé)任編輯:zhaolei 來源: 開發(fā)者社區(qū)
相關(guān)推薦

2013-07-29 04:24:40

iOS開發(fā)學(xué)習(xí)ViewControl

2011-06-15 17:45:23

Qt 橫屏 豎屏

2017-05-04 21:15:30

Android分辨率

2014-10-15 14:58:50

iPhone6iOS 8分辨率

2013-07-29 05:04:19

Cocos2dx橫屏豎

2011-04-28 13:09:49

2023-02-16 07:30:55

圖形編輯器屏幕開發(fā)

2015-07-15 12:30:37

移動端H5高清多屏

2014-07-08 11:10:39

移動端分辨率適配

2019-01-14 14:56:17

分辨率1080P2K

2014-08-07 15:06:45

Android設(shè)備分辨率

2024-04-26 08:25:21

Bitmap內(nèi)存圖片

2021-04-23 07:27:26

Teprunner響應(yīng)式用例

2017-04-10 09:17:08

神經(jīng)網(wǎng)絡(luò)分辨率像素遞歸

2016-12-02 20:43:28

Android

2021-05-02 23:13:07

Windows 10Windows微軟

2011-05-31 14:18:54

橫屏UI設(shè)計

2017-06-13 12:57:42

Windows 10Windows分辨率

2011-08-16 17:57:51

linux修改分辨率

2021-04-16 14:44:34

小米
點贊
收藏

51CTO技術(shù)棧公眾號