App適配

語(yǔ)言適配
屏幕適配
版本適配

<div id="language"/>

語(yǔ)言適配

在包含文字的UI中册踩,最好將文字與代碼分離開。Android為我們提供了一個(gè)res目錄:


為了支持不同的語(yǔ)言適配朽基,

  1. 我們需要在res目錄下根據(jù)不同地區(qū)建立不同的values-xxx文件,其中xxx代表國(guó)家簡(jiǎn)寫
  2. values-xxx下新建一個(gè)strings.xml文件
  3. 編寫各個(gè)values下的strings.xml

4.在布局中使用@string/title引用strings.xml中的值,系統(tǒng)會(huì)根據(jù)機(jī)器的本地語(yǔ)言選擇合適的引用來(lái)源

//在xml中
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/title"/>

//在代碼中:
TextView textView=(TextView) findViewById(R.id.textView);
textView.setText(R.string.title);

<span id="screen"/>

屏幕適配

Android 通過(guò)尺寸大小密度來(lái)定義不同的屏幕巍佑。

  • 大小:small寄悯、normal萤衰、large、xlarge
  • 密度: low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)
    和適配語(yǔ)言一樣猜旬,通過(guò)創(chuàng)建不同的文件,來(lái)適配不同的屏幕脆栋,比如laytouts以及bitmap倦卖。
    還有一個(gè)需要適配的地方就是屏幕的方向(橫豎屏)
創(chuàng)建不同的layouts目錄

為了適配不同大小或屏幕方向的屏幕,通過(guò)創(chuàng)建layouts-<尺寸或方向>類似的目錄進(jìn)行適配椿争。Android 系統(tǒng)會(huì)在app運(yùn)行的時(shí)候怕膛,根據(jù)屏幕的大小以及方向來(lái)選擇合適的布局文件。

MyProject/
    res/
        layout/              # 默認(rèn)(豎屏)
            main.xml
        layout-land/         # 橫屏
            main.xml
        layout-large/        # 大尺寸(豎屏)
            main.xml
        layout-large-land/   # 大尺寸 橫屏
            main.xml
創(chuàng)建不同分辨率的bitmap

不同的機(jī)器丘薛,屏幕分辨率是不同的嘉竟。如果為一個(gè)高分辨率的機(jī)器提供一張低分辨率的圖片來(lái)顯示,那么圖片看起來(lái)就會(huì)很模糊洋侨,用戶體驗(yàn)不好舍扰。如果在一個(gè)低分辨率的機(jī)器上顯示一張高分辨率的圖片,顯示的還是低分辨率圖片希坚,而且會(huì)導(dǎo)致不必要的內(nèi)存開銷边苹。
因此為不同分辨率的屏幕提供合適分辨率的圖片是很有必要的。

不同分辨率對(duì)應(yīng)的縮放比如下:

xhdpi: 2.0
hdpi: 1.5
mdpi: 1.0 (baseline)
ldpi: 0.75

縮放比是啥意思呢裁僧?假如有一張 100*100 像素的mdpi圖片个束,那么對(duì)應(yīng)的其他分辨率為:

xhdpi: 2.0    ->  200*200 px
hdpi:  1.5    ->  150*150 px
mdpi:  1.0    ->  100*100 px
ldpi:  0.75   ->  75*75   px

在使用Andriod Studio創(chuàng)建項(xiàng)目的時(shí)候,為我們提供了不同分辨率的目錄聊疲,我們只需將不同的分辨率的圖片放入對(duì)應(yīng)的目錄下即可


<div id="sdk"/>

版本適配

由于Android SDK有許多不同的版本茬底,因此不同的版本之間可能存在差異。比如新版本添加了一個(gè)新功能获洲,如果將該App安裝到低版本的機(jī)器上阱表,那么機(jī)器肯定會(huì)不支持,從而導(dǎo)致崩潰贡珊。
查看當(dāng)前開發(fā)的sdk版本配置最爬,在Android Studio 創(chuàng)建項(xiàng)目時(shí),會(huì)在項(xiàng)目根目錄下门岔,生成build.gradle文件:

andriod{
...
 compileSdkVersion 23  //當(dāng)前編譯使用的SDK版本
 defaultConfig{
    ...
    minSdkVersion 15      //允許運(yùn)行的最低SDK版本
    targetSdkVersion 23    //當(dāng)前SDK版本
    versionCode 1
    versionName "1.0"
  }
...
}

為了解決不同 版本之間可能存在的差異爱致,我們可以在運(yùn)行時(shí)通過(guò) Build.VERSION.SDK_INT 獲取本機(jī)的sdk版本來(lái)做相應(yīng)的操作:

private void setUpActionBar() {    
// Make sure we're running on Honeycomb or higher to use ActionBar APIs    
   if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {        
    ActionBar actionBar = getActionBar();        
    actionBar.setDisplayHomeAsUpEnabled(true);    
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市寒随,隨后出現(xiàn)的幾起案子糠悯,更是在濱河造成了極大的恐慌,老刑警劉巖妻往,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件互艾,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蒲讯,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門灰署,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)判帮,“玉大人局嘁,你說(shuō)我怎么就攤上這事』耷剑” “怎么了悦昵?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)晌畅。 經(jīng)常有香客問我但指,道長(zhǎng),這世上最難降的妖魔是什么抗楔? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任棋凳,我火速辦了婚禮,結(jié)果婚禮上连躏,老公的妹妹穿的比我還像新娘剩岳。我一直安慰自己,他們只是感情好入热,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布拍棕。 她就那樣靜靜地躺著,像睡著了一般勺良。 火紅的嫁衣襯著肌膚如雪绰播。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天尚困,我揣著相機(jī)與錄音蠢箩,去河邊找鬼。 笑死尾组,一個(gè)胖子當(dāng)著我的面吹牛忙芒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播讳侨,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼呵萨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了跨跨?” 一聲冷哼從身側(cè)響起潮峦,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎勇婴,沒想到半個(gè)月后忱嘹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡耕渴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年拘悦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片橱脸。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡础米,死狀恐怖分苇,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情屁桑,我是刑警寧澤医寿,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站蘑斧,受9級(jí)特大地震影響靖秩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜竖瘾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一沟突、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧准浴,春花似錦事扭、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至葡公,卻和暖如春罐农,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背催什。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工涵亏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蒲凶。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓气筋,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親旋圆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子宠默,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容