国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

重慶網(wǎng)站制作哪家好搜索引擎都有哪些

重慶網(wǎng)站制作哪家好,搜索引擎都有哪些,廣東東莞疫情,新鄭市建設(shè)局網(wǎng)站參考 google官網(wǎng): 支持不同的語(yǔ)言和文化 應(yīng)用包含可能專(zhuān)門(mén)針對(duì)特定文化而設(shè)計(jì)的資源。例如,應(yīng)用可以包含針對(duì)特定文化的字符串,這些字符串將轉(zhuǎn)換為當(dāng)前語(yǔ)言區(qū)域的語(yǔ)言。 將具有文化特異性的資源與應(yīng)用的其他資源分開(kāi)是一種很好的做法。And…

參考

google官網(wǎng): 支持不同的語(yǔ)言和文化

應(yīng)用包含可能專(zhuān)門(mén)針對(duì)特定文化而設(shè)計(jì)的資源。例如,應(yīng)用可以包含針對(duì)特定文化的字符串,這些字符串將轉(zhuǎn)換為當(dāng)前語(yǔ)言區(qū)域的語(yǔ)言。

將具有文化特異性的資源與應(yīng)用的其他資源分開(kāi)是一種很好的做法。Android 會(huì)根據(jù)系統(tǒng)語(yǔ)言區(qū)域設(shè)置解析特定于語(yǔ)言和文化的資源。您可以使用 Android 項(xiàng)目中的資源目錄為不同的語(yǔ)言區(qū)域提供支持。

您可以指定相關(guān)資源,此類(lèi)資源根據(jù)使用應(yīng)用的用戶(hù)的文化量身定制。您可以提供適合用戶(hù)的語(yǔ)言和文化的任何資源類(lèi)型。例如,以下屏幕截圖展示了應(yīng)用在設(shè)備的默認(rèn) en_US 語(yǔ)言區(qū)域和西班牙語(yǔ) es_ES 語(yǔ)言區(qū)域中顯示的字符串和可繪制資源。

應(yīng)用根據(jù)當(dāng)前的語(yǔ)言區(qū)域顯示不同的文本和圖標(biāo)

圖 1. 應(yīng)用根據(jù)當(dāng)前的語(yǔ)言區(qū)域使用不同的資源

當(dāng)您使用 Android SDK 工具創(chuàng)建項(xiàng)目時(shí),相應(yīng)工具會(huì)在項(xiàng)目的頂層生成一個(gè) res/ 目錄。此 res/ 目錄中包含用于存放各類(lèi)資源的子目錄。此外,還包含幾個(gè)默認(rèn)文件(如 res/values/strings.xml),用于存放您的字符串值。

支持不同的語(yǔ)言不僅僅是使用特定于語(yǔ)言區(qū)域的資源。某些用戶(hù)為其界面語(yǔ)言區(qū)域選擇的語(yǔ)言(如阿拉伯語(yǔ)或希伯來(lái)語(yǔ))使用從右到左 (RTL) 腳本。如果用戶(hù)將界面語(yǔ)言區(qū)域設(shè)置為使用 LTR 腳本的語(yǔ)言(例如英語(yǔ)),則可以用使用 RTL 腳本的語(yǔ)言查看或生成內(nèi)容。若要同時(shí)支持這兩類(lèi)用戶(hù),您的應(yīng)用需要執(zhí)行以下操作:

  • 對(duì) RTL 語(yǔ)言區(qū)域采用 RTL 界面布局。
  • 檢測(cè)并聲明在設(shè)置了格式的消息中顯示的文本數(shù)據(jù)的方向。通常,您可以按照本指南中的說(shuō)明調(diào)用某種方法,由該方法決定文本數(shù)據(jù)的方向。

創(chuàng)建語(yǔ)言區(qū)域目錄和資源文件

如需添加對(duì)更多語(yǔ)言區(qū)域的支持,請(qǐng)?jiān)?res/ 內(nèi)創(chuàng)建其他目錄。每個(gè)目錄的名稱(chēng)都必須遵循以下格式:

<resource type>-b+<language code>[+<country code>]

例如,values-b+es/ 包含語(yǔ)言代碼為 es 的語(yǔ)言區(qū)域字符串資源。
與之類(lèi)似,mipmap-b+es+ES/ 包含語(yǔ)言代碼為 es、國(guó)家/地區(qū)代碼為 ES 的語(yǔ)言區(qū)域圖標(biāo)。

Android 在運(yùn)行時(shí)根據(jù)設(shè)備的語(yǔ)言區(qū)域設(shè)置加載適當(dāng)?shù)馁Y源。如需了解詳情,請(qǐng)參閱提供備用資源。

決定要支持的語(yǔ)言區(qū)域后,請(qǐng)創(chuàng)建資源子目錄和文件。例如:

MyProject/res/values/strings.xmlvalues-b+es/strings.xmlmipmap/country_flag.pngmipmap-b+es+ES/country_flag.png

使用本地化資源填充資源文件。以下是本地化字符串和圖片資源文件的示例:

/values/strings.xml 中的英語(yǔ)字符串(默認(rèn)語(yǔ)言區(qū)域):

<resources><string name="hello_world">Hello World!</string>
</resources>

/values-b+es/strings.xml 中的西班牙語(yǔ)字符串(es 語(yǔ)言區(qū)域):

<resources><string name="hello_world">?Hola Mundo!</string>
</resources>

/mipmap/country_flag.png 中的美國(guó)國(guó)旗圖標(biāo)(默認(rèn)語(yǔ)言區(qū)域):

美國(guó)國(guó)旗的圖標(biāo)

圖 2. 用于默認(rèn) (en_US) 語(yǔ)言區(qū)域的圖標(biāo)。

/mipmap-b+es+ES/country_flag.png 中的西班牙國(guó)旗圖標(biāo)(es_ES 語(yǔ)言區(qū)域):

西班牙國(guó)旗的圖標(biāo)

圖 3. 用于 es_ES 語(yǔ)言區(qū)域的圖標(biāo)。

注意:您可以對(duì)任何資源類(lèi)型使用配置限定符,例如語(yǔ)言區(qū)域限定符。例如,您可能需要提供可繪制位圖資源的本地化版本。如需了解詳情,請(qǐng)參閱本地化您的應(yīng)用。

使用應(yīng)用中的資源

您可以使用每個(gè)資源的 name 屬性,在源代碼和其他 XML 文件中引用相應(yīng)的資源:R..。有多種方法以這種方式接受資源,如以下示例所示:

// Get a string resource
String hello = getResources().getString(R.string.hello_world);// Or supply a string resource to a method that requires a string
TextView textView = new TextView(this);
textView.setText(R.string.hello_world);

在其他 XML 文件中,只要 XML 屬性接受兼容的值,您就可以使用 @/ 語(yǔ)法引用資源,如以下示例所示:

<ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/country_flag" />

注意:為確保正確設(shè)置用戶(hù)語(yǔ)言設(shè)置的優(yōu)先級(jí),請(qǐng)使用 resConfigs 屬性指定應(yīng)用支持的語(yǔ)言。如需了解詳情,請(qǐng)參閱指定應(yīng)用支持的語(yǔ)言。

設(shè)置消息中文本的格式

應(yīng)用中最常見(jiàn)的任務(wù)之一就是設(shè)置文本的格式。將文本和數(shù)字?jǐn)?shù)據(jù)插入適當(dāng)?shù)奈恢?#xff0c;即可設(shè)置本地化消息的格式。遺憾的是,在處理 RTL 界面或 RTL 數(shù)據(jù)時(shí),簡(jiǎn)單的格式設(shè)置可能會(huì)顯示不正確甚至無(wú)法讀取的文本輸出。

阿拉伯語(yǔ)、希伯來(lái)語(yǔ)、波斯語(yǔ)和烏爾都語(yǔ)等語(yǔ)言按 RTL 方向編寫(xiě)。不過(guò),某些元素(如數(shù)字和嵌入式 LTR 文本)卻在 RTL 文本中按 LTR 方向編寫(xiě)。使用 LTR 腳本的語(yǔ)言(包括英語(yǔ))也是雙向的,因?yàn)樗鼈兛梢园枰?RTL 方向顯示的嵌入式 RTL 腳本。

應(yīng)用經(jīng)常會(huì)生成此類(lèi)嵌入式反向文本的實(shí)例,例如通過(guò)將任意語(yǔ)言和任意文本方向的文本數(shù)據(jù)插入到本地化消息中。這樣混合方向時(shí),通常不會(huì)明確指出反向文本的開(kāi)始和結(jié)束位置,因此應(yīng)用生成的文本可能會(huì)導(dǎo)致用戶(hù)體驗(yàn)不佳。

雖然系統(tǒng)對(duì)雙向文本的默認(rèn)處理方式通常會(huì)按預(yù)期呈現(xiàn)文本,但是當(dāng)您的應(yīng)用將文本插入本地化消息時(shí),文本有可能無(wú)法正確呈現(xiàn)。下面的示例說(shuō)明了文本可能錯(cuò)誤呈現(xiàn)的情況:

  • 在消息開(kāi)頭插入的文本:

PERSON_NAME 正在呼叫您

  • 以數(shù)字開(kāi)頭的文本,例如地址或電話號(hào)碼:

987 654-3210

  • 以標(biāo)點(diǎn)符號(hào)開(kāi)頭的文本,例如電話號(hào)碼:

+19876543210

  • 以標(biāo)點(diǎn)符號(hào)結(jié)尾的文本:

確定嗎?

  • 已包含兩個(gè)書(shū)寫(xiě)方向的文本:

???? 一詞是希伯來(lái)語(yǔ),意思是香蕉。

示例

假設(shè)某個(gè)應(yīng)用有時(shí)需要顯示消息“您是不是要找 %s?”,并在運(yùn)行時(shí)插入地址來(lái)代替 %s。由于該應(yīng)用支持不同的界面語(yǔ)言區(qū)域,因此該消息來(lái)自特定于語(yǔ)言區(qū)域的資源,并在設(shè)備設(shè)置為 RTL 語(yǔ)言區(qū)域時(shí)使用 RTL 方向。例如,對(duì)于希伯來(lái)語(yǔ)界面,消息如下所示:

??? ??????? ? %s?

不過(guò),建議地址所在的數(shù)據(jù)庫(kù)可能不包含采用相應(yīng)語(yǔ)言區(qū)域的語(yǔ)言的文本。例如,如果相關(guān)地址是加利福尼亞州某個(gè)地方的地址,那么它會(huì)使用英語(yǔ)文本顯示在數(shù)據(jù)庫(kù)中。如果您將地址“15 Bay Street, Laurel, CA”插入 RTL 消息而不提供任何有關(guān)文本方向的提示,那么結(jié)果會(huì)不符合預(yù)期或不正確:

??? ??????? ? 15 Bay Street, Laurel, CA?

門(mén)牌號(hào)顯示在地址的右側(cè),而不是像預(yù)期那樣顯示在左側(cè)。這使門(mén)牌號(hào)看起來(lái)更像一個(gè)奇怪的郵政編碼。如果在使用 LTR 文本方向的消息中包含 RTL 文本,可能會(huì)出現(xiàn)同樣的問(wèn)題。

解釋說(shuō)明和解決方案

之所以出現(xiàn)此例中的問(wèn)題,是因?yàn)槲谋靖袷皆O(shè)置工具沒(méi)有指定“15”是地址的一部分,因此系統(tǒng)無(wú)法確定“15”是它前面的 RTL 文本的一部分,還是它后面的 LTR 文本的一部分。

若要解決此問(wèn)題,請(qǐng)使用 BidiFormatter 類(lèi)中的 unicodeWrap() 方法。此方法檢測(cè)字符串的方向,并以用來(lái)聲明該方向的 Unicode 格式字符封裝該字符串。

以下代碼段展示了如何使用 unicodeWrap():


String mySuggestion = "15 Bay Street, Laurel, CA";
BidiFormatter myBidiFormatter = BidiFormatter.getInstance();// The "did_you_mean" localized string resource includes
// a "%s" placeholder for the suggestion.
String.format(getString(R.string.did_you_mean),myBidiFormatter.unicodeWrap(mySuggestion));

由于“15”現(xiàn)在出現(xiàn)在聲明為 LTR 的文本中,因此它顯示在正確的位置:

??? ??????? ? 15 Bay Street, Laurel, CA?

請(qǐng)對(duì)插入本地化消息的每段文本使用 unicodeWrap() 方法,但以下情況除外:

  • 正在將文本插入機(jī)器可讀的字符串,如 URI 或 SQL 查詢(xún)。
  • 您知道這段文本已正確換行。

注意:如果您的應(yīng)用以 Android 4.3(API 級(jí)別 18)或更高版本為目標(biāo)平臺(tái),請(qǐng)使用 Android 框架中的 BidiFormatter 版本。否則,請(qǐng)使用支持庫(kù)中的 BidiFormatter 版本。

設(shè)置數(shù)字的格式

您可以使用格式字符串(而非方法調(diào)用)在應(yīng)用的邏輯中將數(shù)字轉(zhuǎn)換為字符串:

String myIntAsString = String.format("%d", myInt);

這種方案會(huì)根據(jù)您的語(yǔ)言區(qū)域適當(dāng)?shù)卦O(shè)置數(shù)字格式,可能包括使用不同的數(shù)字集。

當(dāng)您使用 String.format() 在某個(gè)設(shè)備上創(chuàng)建 SQL 查詢(xún)并且該設(shè)備設(shè)置的語(yǔ)言區(qū)域(如波斯語(yǔ)和大多數(shù)阿拉伯語(yǔ)語(yǔ)言區(qū)域)使用其自己的數(shù)字集時(shí),如果查詢(xún)的任何參數(shù)是數(shù)字,就會(huì)出現(xiàn)問(wèn)題。這是因?yàn)樽鳛閰?shù)的數(shù)字設(shè)置成了該語(yǔ)言區(qū)域的數(shù)字格式,而該語(yǔ)言區(qū)域的這些數(shù)字在 SQL 中無(wú)效。

如需保留 ASCII 格式的數(shù)字并使 SQL 查詢(xún)保持有效,您需要改用包含語(yǔ)言區(qū)域作為第一個(gè)參數(shù)的 String.format() 過(guò)載版本。使用語(yǔ)言區(qū)域參數(shù) Locale.US。

支持布局鏡像

使用 RTL 腳本的用戶(hù)更喜歡 RTL 界面,這種界面包含右對(duì)齊菜單、右對(duì)齊文本和指向左側(cè)的向前箭頭。

圖 4 顯示了“設(shè)置”應(yīng)用中某個(gè)屏幕的 LTR 版本與對(duì)應(yīng)的 RTL 版本之間的對(duì)比:

通知區(qū)域靠近右上角右對(duì)齊,應(yīng)用欄中的菜單按鈕靠近左上角,屏幕主要部分中的內(nèi)容左對(duì)齊且按 LTR 顯示,后退按鈕靠近左下角且指向左側(cè)。通知區(qū)域靠近左上角左對(duì)齊,應(yīng)用欄中的菜單按鈕靠近右上角,屏幕主要部分中的內(nèi)容右對(duì)齊且按 RTL 顯示,返回按鈕靠近右下角且指向右側(cè)。

在這里插入圖片描述

圖 4. 設(shè)置屏幕的 LTR 和 RTL 變體。
向您的應(yīng)用添加 RTL 支持時(shí),請(qǐng)記住以下幾點(diǎn):

  • 只有在搭載 Android 4.2(API 級(jí)別 17)或更高版本的設(shè)備上使用時(shí),才會(huì)在應(yīng)用中支持 RTL 文本鏡像。如需了解如何在舊款設(shè)備上支持文本鏡像,請(qǐng)參閱本指南中的對(duì)舊版應(yīng)用提供支持。
  • 如要測(cè)試您的應(yīng)用是否支持 RTL 文本方向,請(qǐng)按本指南中所述的方式使用開(kāi)發(fā)者選項(xiàng)進(jìn)行測(cè)試,并邀請(qǐng)使用 RTL 腳本的用戶(hù)使用您的應(yīng)用。

注意:如需查看與布局鏡像相關(guān)的其他設(shè)計(jì)指南(包括適合鏡像和不適合鏡像的元素的列表),請(qǐng)參閱雙向性 Material Design 指南。

若要鏡像應(yīng)用中的界面布局以使其在 RTL 語(yǔ)言區(qū)域中按 RTL 顯示,請(qǐng)完成下面幾部分中的步驟。

修改 build 和清單文件

請(qǐng)按以下內(nèi)容修改應(yīng)用模塊的 build.gradle 文件和應(yīng)用清單文件:

build.gradle (Module: app)

android {...defaultConfig {targetSdkVersion 17 // Or higher...}
}

AndroidManifest.xml

<manifest ... >...<application ...android:supportsRtl="true"></application>
</manifest>

注意:如果您的應(yīng)用以 Android 4.1.1(API 級(jí)別 16)或更低版本為目標(biāo)平臺(tái),系統(tǒng)會(huì)忽略 android:supportsRtl 屬性,以及在應(yīng)用布局文件中出現(xiàn)的任何 start 和 end 屬性值。在這種情況下,不會(huì)在您的應(yīng)用中自動(dòng)發(fā)生 RTL 布局鏡像。

更新現(xiàn)有資源

在您現(xiàn)有的布局資源文件中分別將 left 和 right 轉(zhuǎn)化為 start 和 end。這樣就能允許框架根據(jù)用戶(hù)的語(yǔ)言設(shè)置對(duì)齊應(yīng)用的界面元素。

注意:在更新資源之前,請(qǐng)了解如何對(duì)舊版應(yīng)用提供支持,或?qū)σ?Android 4.1.1(API 級(jí)別 16)及更低版本為目標(biāo)平臺(tái)的應(yīng)用提供支持。

若要使用框架的 RTL 對(duì)齊功能,請(qǐng)更改表 1 中顯示的布局文件中的屬性。

表 1. 應(yīng)用支持多種文本方向的情況下使用的屬性

僅支持 LTR 的屬性支持 LTR 和 RTL 的屬性
android:gravity=“l(fā)eft”android:gravity=“start”
android:gravity=“right”android:gravity=“end”
android:layout_gravity=“l(fā)eft”android:layout_gravity=“start”
android:layout_gravity=“right”android:layout_gravity=“end”
android:paddingLeftandroid:paddingStart
android:paddingRightandroid:paddingEnd
android:drawableLeftandroid:drawableStart
android:drawableRightandroid:drawableEnd
android:layout_alignLeftandroid:layout_alignStart
android:layout_alignRightandroid:layout_alignEnd
android:layout_marginLeftandroid:layout_marginStart
android:layout_marginRightandroid:layout_marginEnd
android:layout_alignParentLeftandroid:layout_alignParentStart
android:layout_alignParentRightandroid:layout_alignParentEnd
android:layout_toLeftOfandroid:layout_toStartOf
android:layout_toRightOfandroid:layout_toEndOf

表 2 展示了系統(tǒng)如何根據(jù)目標(biāo) SDK 版本處理界面對(duì)齊屬性、是否定義 left 和 right 屬性,以及是否定義 start 和 end 屬性。

表 2. 基于目標(biāo) SDK 版本和已定義屬性的界面元素對(duì)齊行為

是否以 Android 4.2(API 級(jí)別 17)或更高版本為目標(biāo)平臺(tái)?是否定義了 left 和 right 屬性?是否定義了 start 和 end 屬性?結(jié)果
使用 start 和 end,替換 left 和 right
使用 left 和 right
使用 start 和 end
使用 left 和 right(忽略 start 和 end)
使用 left 和 right
start 和 end 解析為 left 和 right

添加特定于方向和語(yǔ)言的資源

此步驟涉及添加特定版本的布局、可繪制對(duì)象和值資源文件,這些文件包含針對(duì)不同語(yǔ)言和文本方向的自定義值。

在 Android 4.2(API 級(jí)別 17)和更高版本中,您可以使用 -ldrtl (layout-direction-right-to-left) 和 -ldltr (layout-direction-left-to-right) 資源限定符。為了保持與現(xiàn)有資源向后兼容,舊版 Android 系統(tǒng)使用資源的語(yǔ)言限定符推斷正確的文本方向。

假設(shè)您要添加特定的布局文件以支持 RTL 腳本,如希伯來(lái)語(yǔ)、阿拉伯語(yǔ)和波斯語(yǔ)的布局文件。如要完成此操作,請(qǐng)?jiān)谀?res/ 目錄中添加 layout-ldrtl/ 目錄,如下方示例所示:

res/layout/main.xml This layout file is loaded by default.layout-ldrtl/main.xml This layout file is loaded for languages using an RTL text direction, including Arabic, Persian, and Hebrew.

如果要添加專(zhuān)為阿拉伯語(yǔ)文本設(shè)計(jì)的特定版本的布局,目錄結(jié)構(gòu)如下:

res/layout/main.xml This layout file is loaded by default.layout-ar/main.xml This layout file is loaded for Arabic text.layout-ldrtl/main.xml This layout file is loaded only for non-Arabic languages that use an RTL text direction.

注意:特定于語(yǔ)言的資源優(yōu)先于特定于布局方向的資源,而特定于布局方向的資源優(yōu)先于默認(rèn)資源。

使用支持的微件

從 Android 4.2(API 級(jí)別 17)開(kāi)始,大多數(shù)框架界面元素都自動(dòng)支持 RTL 文本方向。但是,也有一些框架元素(如 ViewPager)不支持 RTL 文本方向。

只要在主屏幕微件的對(duì)應(yīng)清單文件中添加屬性賦值 android:supportsRtl=“true”,這些微件就可以支持 RTL 文本方向。

對(duì)舊版應(yīng)用提供支持

如果您的應(yīng)用以 Android 4.1.1(API 級(jí)別 16)或更低版本為目標(biāo)平臺(tái),那么除 start 和 end 之外,還應(yīng)添加 left 和 right 屬性。

如需檢查布局是否需要使用 RTL 文本方向,請(qǐng)使用以下邏輯:

private boolean shouldUseLayoutRtl() {if (android.os.Build.VERSION.SDK_INT >=android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {return View.LAYOUT_DIRECTION_RTL == getLayoutDirection();} else {return false;}
}

注意:為避免兼容性問(wèn)題,請(qǐng)使用 Android SDK Build Tools 23.0.1 或更高版本。

使用開(kāi)發(fā)者選項(xiàng)進(jìn)行測(cè)試

在搭載 Android 4.4(API 級(jí)別 19)或更高版本的設(shè)備上,您可以在設(shè)備上的開(kāi)發(fā)者選項(xiàng)中啟用強(qiáng)制使用從右到左的布局方向。此設(shè)置允許您在 RTL 模式下查看使用 LTR 腳本的文本(如英語(yǔ)文本)。

更新應(yīng)用邏輯

本部分介紹了在為處理多個(gè)文本方向而調(diào)整應(yīng)用時(shí)需要對(duì)應(yīng)用邏輯做出更新的具體方面。

屬性更改
如需處理與 RTL 相關(guān)的任何屬性(如布局方向、布局參數(shù)、內(nèi)邊距、文本方向、文本對(duì)齊或可繪制對(duì)象放置)的更改,請(qǐng)使用 onRtlPropertiesChanged() 回調(diào)。通過(guò)此回調(diào),您可以獲取當(dāng)前的布局方向,并相應(yīng)地更新 activity 的 View 對(duì)象。

View
如果您要?jiǎng)?chuàng)建的界面 widget 不直接屬于 activity 的視圖層次結(jié)構(gòu)(如類(lèi)似于對(duì)話框或消息框的界面元素),請(qǐng)根據(jù)上下文設(shè)置正確的布局方向。以下代碼段演示了如何完成此過(guò)程:

final Configuration config =getContext().getResources().getConfiguration();
view.setLayoutDirection(config.getLayoutDirection());

您需要額外考慮 View 類(lèi)的一些方法:

onMeasure()
視圖測(cè)量數(shù)據(jù)可能會(huì)因文本方向不同而異。
onLayout()
如果您創(chuàng)建自己的布局實(shí)現(xiàn),則需要在您的 onLayout() 版本中調(diào)用 super(),并調(diào)整自定義邏輯以支持 RTL 腳本。
onDraw()
如果您要實(shí)現(xiàn)自定義視圖或向繪圖添加高級(jí)功能,則需要更新代碼以支持 RTL 腳本。您可以使用以下代碼確定 widget 是否處于 RTL 模式:

// On devices running Android 4.1.1 (API level 16) and lower,
// you can call the isLayoutRtl() system method directly.
public boolean isLayoutRtl() {return (getLayoutDirection() == LAYOUT_DIRECTION_RTL);
}

可繪制對(duì)象

如果您有可繪制對(duì)象需要針對(duì) RTL 布局進(jìn)行鏡像,請(qǐng)根據(jù)設(shè)備上搭載的 Android 版本完成以下步驟之一:

  • 在搭載 Android 4.3(API 級(jí)別 18)及更低版本的設(shè)備上,添加并定義 -ldrtl 資源文件。
  • 在搭載 Android 4.4(API 版本 19)及更高版本的設(shè)備上,在定義可繪制對(duì)象時(shí)使用 android:autoMirrored=“true”,這將使系統(tǒng)能夠?yàn)槟幚?RTL 布局鏡像。

注意:android:autoMirrored 屬性?xún)H適用于簡(jiǎn)單的可繪制對(duì)象,其雙向鏡像只是整個(gè)可繪制對(duì)象的圖形鏡像。如果可繪制對(duì)象包含多個(gè)元素,或者如果反射可繪制對(duì)象會(huì)改變它的解釋,那么您可以自行執(zhí)行鏡像。請(qǐng)盡可能與雙向鏡像方面的專(zhuān)家核實(shí),以確定鏡像的可繪制對(duì)象對(duì)用戶(hù)是否有意義。

Gravity

如果應(yīng)用的布局代碼使用 Gravity.LEFT 或 Gravity.RIGHT,請(qǐng)分別將這些值更改為 Gravity.START 和 Gravity.END。

如果您有 Kotlin 代碼或 Java 代碼依賴(lài)于 Gravity.LEFT 或 Gravity.RIGHT 屬性,您可以將 absoluteGravity 設(shè)置為與 layoutDirection 保持一致,以使其能夠適應(yīng)這項(xiàng)更改。

例如,如果您使用的是以下代碼:

switch (gravity & Gravity.HORIZONTAL_GRAVITY_MASK) {case Gravity.LEFT:// Handle objects that are left-aligned.break;case Gravity.RIGHT:// Handle objects that are right-aligned.break;
}

將其更改為以下代碼:

final int layoutDirection = getLayoutDirection();
final int absoluteGravity =Gravity.getAbsoluteGravity(gravity, layoutDirection);
switch (absoluteGravity & Gravity.HORIZONTAL_GRAVITY_MASK) {case Gravity.LEFT:// Handle objects that are left-aligned.break;case Gravity.RIGHT:// Handle objects that are right-aligned.break;
}

這意味著即使您為 gravity 值使用 start 和 end,也可以保留現(xiàn)有代碼,以處理左對(duì)齊和右對(duì)齊的值。

注意:應(yīng)用 gravity 設(shè)置時(shí),請(qǐng)使用包含 layoutDirection 參數(shù)的 Gravity.apply() 過(guò)載版本。

外邊距和內(nèi)邊距

如需在應(yīng)用中支持 RTL 腳本,請(qǐng)遵循下面這些與外邊距和內(nèi)邊距值相關(guān)的最佳做法:

  • 使用 getMarginStart() 和 getMarginEnd(),而非特定于方向的等效屬性 leftMargin 和 rightMargin。
  • 使用 setMargins() 時(shí),如果您的應(yīng)用檢測(cè)到 RTL 腳本,請(qǐng)交換 left 和 right 參數(shù)的值。
    如果您的應(yīng)用包括自定義內(nèi)邊距邏輯,請(qǐng)?zhí)鎿Q setPadding() 和 setPaddingRelative()。

支持各應(yīng)用語(yǔ)言偏好設(shè)定

在許多情況下,多語(yǔ)言用戶(hù)會(huì)將其系統(tǒng)語(yǔ)言設(shè)置為某一種語(yǔ)言(例如英語(yǔ)),但又想為特定應(yīng)用選擇其他語(yǔ)言(例如荷蘭語(yǔ)、中文或印地語(yǔ))。為了幫助應(yīng)用為這些用戶(hù)提供更好的體驗(yàn),Android 13 針對(duì)支持多種語(yǔ)言的應(yīng)用引入了以下功能:

  • 系統(tǒng)設(shè)置:用戶(hù)可以在這個(gè)集中位置為每個(gè)應(yīng)用選擇首選語(yǔ)言。

您的應(yīng)用必須在應(yīng)用的清單中聲明 android:localeConfig 屬性,以告知系統(tǒng)它支持多種語(yǔ)言。如需了解詳情,請(qǐng)參閱有關(guān)創(chuàng)建資源文件并在應(yīng)用的清單文件中聲明資源的說(shuō)明。

  • 其他 API:借助這些公共 API(例如 LocaleManager 中的 setApplicationLocales() 和 getApplicationLocales() 方法),應(yīng)用可以在運(yùn)行時(shí)設(shè)置不同于系統(tǒng)語(yǔ)言的其他語(yǔ)言。

使用自定義應(yīng)用內(nèi)語(yǔ)言選擇器的應(yīng)用應(yīng)當(dāng)使用這些 API,以確保無(wú)論用戶(hù)通過(guò)何種方式選擇其語(yǔ)言偏好設(shè)置,都能獲得一致的用戶(hù)體驗(yàn)。公共 API 還有助于減少樣板代碼量,并且支持拆分 APK。它們還支持應(yīng)用自動(dòng)備份,以存儲(chǔ)應(yīng)用級(jí)的用戶(hù)語(yǔ)言設(shè)置。

為了向后兼容以前的 Android 版本,AndroidX 中也提供了等效的 API。我們建議使用 Appcompat 1.6.0-beta01 或更高版本。

如需了解詳情,請(qǐng)參閱有關(guān)實(shí)現(xiàn)新 API 的說(shuō)明。

http://aloenet.com.cn/news/45792.html

相關(guān)文章:

  • 衢州網(wǎng)絡(luò)公司做網(wǎng)站口碑營(yíng)銷(xiāo)理論
  • 可信賴(lài)的武漢網(wǎng)站建設(shè)舉例網(wǎng)絡(luò)營(yíng)銷(xiāo)的例子
  • 網(wǎng)站后臺(tái)建設(shè)計(jì)劃書(shū)微信做單30元一單
  • 做網(wǎng)站的銷(xiāo)售團(tuán)隊(duì)站長(zhǎng)之家最新網(wǎng)站
  • 網(wǎng)站安裝系統(tǒng)怎么安裝教程視頻強(qiáng)強(qiáng)seo博客
  • 公司怎么做網(wǎng)站營(yíng)銷(xiāo)模式方案
  • 北京網(wǎng)站建設(shè)新聞國(guó)產(chǎn)長(zhǎng)尾關(guān)鍵詞拘挖掘
  • 有機(jī)蔬菜哪個(gè)網(wǎng)站做的更好溫州seo按天扣費(fèi)
  • 網(wǎng)站制作公司興田德潤(rùn)怎么聯(lián)系今天熱點(diǎn)新聞
  • 佛山網(wǎng)站代運(yùn)營(yíng)準(zhǔn)度科技有限公司網(wǎng)站內(nèi)部鏈接優(yōu)化方法
  • 紹興做網(wǎng)站優(yōu)化大師電腦版
  • 免費(fèi)商品列表網(wǎng)頁(yè)模板源代碼seo快速排名上首頁(yè)
  • 定制制作網(wǎng)站哪家好惠州seo網(wǎng)站推廣
  • 服裝官網(wǎng)網(wǎng)站建設(shè)百度推廣登陸后臺(tái)
  • 幫你省網(wǎng)站怎么做怎樣做網(wǎng)絡(luò)銷(xiāo)售平臺(tái)
  • 靜態(tài)網(wǎng)頁(yè)和動(dòng)態(tài)網(wǎng)頁(yè)的區(qū)別是什么魔貝課凡seo課程好嗎
  • 網(wǎng)站服務(wù)器打不開(kāi)大數(shù)據(jù)培訓(xùn)班需要多少錢(qián)
  • 邢臺(tái)市做網(wǎng)站seo工具不包括
  • 昔陽(yáng)網(wǎng)站建設(shè)注冊(cè)域名在哪里注冊(cè)
  • php做門(mén)戶(hù)網(wǎng)站2024年最新時(shí)事新聞
  • 電影頻道做的網(wǎng)站廣告谷歌手機(jī)版瀏覽器官網(wǎng)
  • 小企業(yè)網(wǎng)絡(luò)營(yíng)銷(xiāo)外包南寧seo產(chǎn)品優(yōu)化服務(wù)
  • wordpress建站好嗎武漢seo搜索優(yōu)化
  • 網(wǎng)絡(luò)營(yíng)銷(xiāo)常用的方法seo 優(yōu)化技術(shù)難度大嗎
  • 專(zhuān)業(yè)做網(wǎng)站公司排名人工智能培訓(xùn)機(jī)構(gòu)哪個(gè)好
  • 做壁畫(huà)的網(wǎng)站湖南網(wǎng)站優(yōu)化
  • 如何在搜索中找到自己做的網(wǎng)站設(shè)計(jì)模板網(wǎng)站
  • msn網(wǎng)站制作windows優(yōu)化大師怎么用
  • 做商業(yè)廣告有什么網(wǎng)站好推銷(xiāo)的北大青鳥(niǎo)職業(yè)技術(shù)學(xué)院簡(jiǎn)介
  • 女人能做網(wǎng)站開(kāi)發(fā)嗎世界杯比分