Android 16 為開發人員推出了強大的新功能和 API。以下各節會概述這些功能,協助您開始使用相關的 API。
如需新增、修改及移除 API 的詳細清單,請參閱 API 差異比較表。如要進一步瞭解新的 API,請參閱 Android API 參考資料 - 新的 API 會醒目顯示,以利於查看。您也應檢查平台變更可能對應用程式造成影響的層面。如需詳細資訊,請參閱以下頁面:
核心功能
Android 包含可擴充 Android 系統核心功能的新 API。
2025 年推出兩個 Android API
- This preview is for the next major release of Android with a planned launch in Q2 of 2025. This release is similar to all of our API releases in the past, where we can have planned behavior changes that are often tied to a targetSdkVersion.
- We're planning the major release a quarter earlier (Q2 rather than Q3 in prior years) to better align with the schedule of device launches across our ecosystem, so more devices can get the major release of Android sooner. With the major release coming in Q2, you'll need to do your annual compatibility testing a few months earlier than in previous years to make sure your apps are ready.
- We plan to have another release in Q4 of 2025 which also will include new developer APIs. The Q2 major release will be the only release in 2025 to include planned behavior changes that could affect apps.
In addition to new developer APIs, the Q4 minor release will pick up feature updates, optimizations, and bug fixes; it will not include any app-impacting behavior changes.

We'll continue to have quarterly Android releases. The Q1 and Q3 updates in-between the API releases will provide incremental updates to help ensure continuous quality. We're actively working with our device partners to bring the Q2 release to as many devices as possible.
Using new APIs with major and minor releases
Guarding a code block with a check for API level is done today using
the SDK_INT
constant with
VERSION_CODES
. This will continue
to be supported for major Android releases.
if (SDK_INT >= VERSION_CODES.BAKLAVA) {
// Use APIs introduced in Android 16
}
The new SDK_INT_FULL
constant can be used for API checks against both major and minor versions with
the new VERSION_CODES_FULL
enumeration.
if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
// Use APIs introduced in a major or minor release
}
You can also use the
Build.getMinorSdkVersion()
method to get just the minor SDK version.
val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)
These APIs have not yet been finalized and are subject to change, so please send us feedback if you have any concerns.
使用者體驗和系統使用者介面
Android 16 可讓應用程式開發人員和使用者更有彈性地控管裝置,以符合自身需求。
以進度為主軸的通知
Android 16 推出以進度為主的通知,協助使用者順暢追蹤使用者啟動的端對端歷程。
Notification.ProgressStyle
是一種新的通知樣式,可讓您建立以進度為主的通知。主要用途包括共乘、外送和導航。在 Notification.ProgressStyle
類別中,您可以使用點和區隔,表示使用者歷程中的狀態和里程碑。
如需了解详情,请参阅以进度为中心的通知文档页面。


預測返回更新
Android 16 添加了新 API,可帮助您在手势导航中启用预测性返回系统动画,例如“返回主屏幕”动画。通过使用新的 PRIORITY_SYSTEM_NAVIGATION_OBSERVER
注册 onBackInvokedCallback
,您的应用可以在系统处理返回导航时接收常规的 onBackInvoked
调用,而不会影响正常的返回导航流程。
Android 16 还添加了 finishAndRemoveTaskCallback()
和 moveTaskToBackCallback
。通过向 OnBackInvokedDispatcher
注册这些回调,系统可以在调用返回手势时触发特定行为并播放相应的提前动画。
更豐富的觸覺回饋
自诞生之日起,Android 就提供了对触感反馈致动器的控制。
Android 11 添加了对更复杂的触感反馈效果的支持,更高级的致动器可以通过设备定义的语义基元 VibrationEffect.Compositions
支持这些效果。
Android 16 添加了触感反馈 API,让应用能够定义触感反馈效果的振幅和频率曲线,同时抽象出设备功能之间的差异。
開發人員工作效率和工具
雖然我們大部分的努力都是為了改善您的工作效率,並以 Android Studio、Jetpack Compose 和 Android Jetpack 程式庫等工具為中心,但我們也一直在尋找各種方法,透過平台協助您實現願景。
動態桌布的內容處理
在 Android 16 中,動態桌布架構會獲得新的內容 API,以解決動態、使用者導向桌布的挑戰。目前,整合使用者提供內容的動態桌布需要複雜的服務專屬實作項目。Android 16 推出 WallpaperDescription
和 WallpaperInstance
。您可以使用 WallpaperDescription 識別同一個服務中動態桌布的不同例項。舉例來說,如果桌布同時出現在主畫面和螢幕鎖定畫面,則兩者可能會顯示不同的內容。桌布挑選器和 WallpaperManager
會使用這項中繼資料,為使用者提供更優質的桌布,讓您能以更簡便的方式打造多樣化且個人化的動態桌布體驗。
效能和電池
Android 16 推出了可協助收集應用程式深入分析資訊的 API。
系統觸發的剖析
ProfilingManager
已在 Android 15 中新增,讓應用程式能夠在外部公開裝置上使用 Perfetto 要求收集分析資料。不過,由於這項剖析作業必須從應用程式啟動,因此應用程式很難或無法擷取啟動或 ANR 等重要流程。
為協助您完成這項工作,Android 16 為 ProfilingManager
導入系統觸發的剖析功能。應用程式可以註冊對特定觸發事件 (例如冷啟動 reportFullyDrawn
或 ANR) 的追蹤記錄興趣,系統就會代替應用程式啟動及停止追蹤記錄。追蹤記錄完成後,結果會傳送至應用程式的資料目錄。
在 ApplicationStartInfo 中啟動元件
ApplicationStartInfo
已在 Android 15 中新增,可讓應用程式查看程序啟動原因、啟動類型、啟動時間、節流和其他實用的診斷資料。Android 16 新增了 getStartComponent()
,用於區分觸發啟動的元件類型,這有助於最佳化應用程式的啟動流程。
更完善的工作內省功能
JobScheduler#getPendingJobReason()
API 會傳回工作可能處於待處理狀態的原因。不過,工作可能會因多種原因而處於待處理狀態。
在 Android 16 中,我們推出了全新的 API JobScheduler#getPendingJobReasons(int jobId)
,可傳回工作處於待處理狀態的多種原因,包括開發人員設定的明確限制,以及系統設定的隱含限制。
我們也推出 JobScheduler#getPendingJobReasonsHistory(int jobId)
,可傳回最新約束條件變更的清單。
建議您使用 API 來偵測工作未執行的原因,特別是當您發現特定工作成功率降低,或特定工作完成時間延遲時,就需要進行偵錯。例如,在背景更新小工具時發生錯誤,或是在應用程式啟動前無法呼叫預先擷取工作。
這也能協助您進一步瞭解,某些工作是否因系統定義的限制而無法完成,而非明確設定的限制。
自動調整刷新率
在 Android 15 中推出的適應性重新整理率 (ARR) 可讓支援硬體的螢幕重新整理率,透過獨立的 VSync 步驟調整至內容影格速率。這麼做可降低耗電量,同時避免需要切換模式,進而導致卡頓現象。
Android 16 在還原 getSupportedRefreshRates()
時,會引入 hasArrSupport()
和 getSuggestedFrameRate(int)
,讓應用程式更容易利用 ARR。RecyclerView 1.4 在從彈跳或平滑捲動中進行調整時,會在內部支援 ARR,我們也持續致力於將 ARR 支援功能加入更多 Jetpack 程式庫。這篇關於影格速率的文章介紹許多可用來設定影格速率的 API,讓應用程式能直接使用 ARR。
ADPF 中的 Headroom API
SystemHealthManager
引進 getCpuHeadroom
和 getGpuHeadroom
API,旨在為遊戲和資源密集型應用程式提供可用 CPU 和 GPU 資源的預估值。這些方法可讓您評估應用程式或遊戲如何最佳化系統健康狀況,尤其是與其他Android 動態效能架構 (ADPF) API 搭配使用時,這些 API 可偵測熱控調節。
在支援的裝置上使用 CpuHeadroomParams
和 GpuHeadroomParams
,您可以自訂用於計算預留空間的時間視窗,並選擇平均或最低資源可用性。這麼做可以協助您相應減少 CPU 或 GPU 資源使用量,進而提供更優質的使用者體驗和更長的電池續航力。
無障礙設定
Android 16 新增了無障礙 API 和功能,可協助您將應用程式推廣給所有使用者。
改善無障礙 API
Android 16 添加了其他 API 来增强界面语义,这有助于为依赖于无障碍服务(例如 TalkBack)的用户提高一致性。
为文字添加轮廓,以最大限度地提高文字对比度
视力较低的用户对对比度的敏感度通常较低,因此很难将对象与背景区分开来。为了帮助这些用户,Android 16 引入了轮廓文本,取代了高对比度文本,后者会在文本周围绘制较大的对比度区域,以大大提高可辨性。
Android 16 包含新的 AccessibilityManager
API,可让您的应用检查或注册监听器,以查看此模式是否已启用。这主要适用于 Compose 等界面工具包,以提供类似的视觉体验。如果您维护界面工具包库,或者您的应用执行绕过 android.text.Layout
类的自定义文本渲染,则可以使用此方法来了解何时启用轮廓文本。

向 TtsSpan 添加了时长
Android 16 使用 TYPE_DURATION
扩展了 TtsSpan
,其中包含 ARG_HOURS
、ARG_MINUTES
和 ARG_SECONDS
。这样,您就可以直接为时长添加注释,确保通过 TalkBack 等服务获得准确且一致的文本转语音输出。
支持具有多个标签的元素
Android 目前允许界面元素从其他元素派生其无障碍功能标签,现在还支持关联多个标签,这是 Web 内容中常见的情况。通过在 AccessibilityNodeInfo
中引入基于列表的 API,Android 可以直接支持这些多标签关系。在进行这项更改的过程中,我们已弃用 AccessibilityNodeInfo#setLabeledBy
和 #getLabeledBy
,改用 #addLabeledBy
、#removeLabeledBy
和 #getLabeledByList
。
改进了对可展开元素的支持
Android 16 添加了无障碍功能 API,可让您传达互动元素(例如菜单和展开式列表)的展开或收起状态。通过使用 setExpandedState
设置展开状态,并使用 CONTENT_CHANGE_TYPE_EXPANDED
内容更改类型调度 TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents,您可以确保 TalkBack 等屏幕阅读器会读出状态更改,从而提供更直观、更包容的用户体验。
不确定进度条
Android 16 添加了 RANGE_TYPE_INDETERMINATE
,让您可以为确定性和不确定性 ProgressBar
微件公开 RangeInfo
,从而让 TalkBack 等服务能够更一致地为进度指示器提供反馈。
三态复选框
Android 16 中的新 AccessibilityNodeInfo
getChecked
和 setChecked(int)
方法现在除了“已选中”和“未选中”之外,还支持“部分选中”状态。此字段取代了已废弃的布尔值 isChecked
和 setChecked(boolean)
。
补充说明
如果无障碍服务提供关于 ViewGroup
的说明,则会将来自其子视图的内容标签合并在一起。如果您为 ViewGroup
提供 contentDescription
,无障碍服务会假定您还要覆盖不可聚焦的子视图的说明。如果您想为下拉菜单等内容添加标签(例如“字体系列”),同时保留当前的无障碍功能选择(例如“Roboto”),这可能会造成问题。Android 16 添加了 setSupplementalDescription
,以便您提供用于提供 ViewGroup
相关信息的文本,而不会覆盖其子项中的信息。
必填表单字段
Android 16 向 AccessibilityNodeInfo
添加了 setFieldRequired
,以便应用可以告知无障碍服务需要输入表单字段。对于填写各种类型表单的用户而言,这是一个重要的场景,即使是简单的必填条款及条件复选框,也能帮助用户始终如一地识别必填字段并在必填字段之间快速导航。
使用手機麥克風輸入聲音,以便透過 LEA 助聽器進行語音通話
Android 16 adds the capability for users of LE Audio hearing aids to switch between the built-in microphones on the hearing aids and the microphone on their phone for voice calls. This can be helpful in noisy environments or other situations where the hearing aid's microphones might not perform well.
為 LEA 助聽器提供環境音量控制
Android 16 adds the capability for users of LE Audio hearing aids to adjust the volume of ambient sound that is picked up by the hearing aid's microphones. This can be helpful in situations where background noise is too loud or too quiet.
相機
Android 16 強化了對專業相機使用者的支援,可搭配混合式自動曝光功能,精準調整色溫和色調。新的夜間模式指標可協助應用程式瞭解何時切換至夜間模式相機工作階段,以及何時離開該模式。新的 Intent
動作可讓您更輕鬆地拍攝動態相片,我們也持續改善 UltraHDR 圖片,支援 HEIC 編碼和 ISO 21496-1 草稿標準的新參數。
混合式自動曝光
Android 16 向 Camera2 添加了新的混合自动曝光模式,让您可以手动控制曝光的特定方面,同时让自动曝光 (AE) 算法处理其余部分。您可以控制 ISO + AE 和曝光时间 + AE,与当前方法(您要么完全手动控制,要么完全依赖自动曝光)相比,可提供更大的灵活性。
public void setISOPriority() {
...
int[] availablePriorityModes =
mStaticInfo.getCharacteristics().get(CameraCharacteristics.
COLOR_AE_AVAILABLE_PRIORITY_MODES);
...
// Turn on AE mode to set priority mode
reqBuilder.set(CaptureRequest.CONTROL_AE_MODE,
CameraMetadata.CONTROL_AE_MODE_ON);
reqBuilder.set(CaptureRequest.CONTROL_AE_PRIORITY_MODE,
CameraMetadata.CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY);
reqBuilder.set(CaptureRequest.SENSOR_SENSITIVITY,
TEST_SENSITIVITY_VALUE);
CaptureRequest request = reqBuilder.build();
...
}
精確調整色溫和色調
Android 16 adds camera support for fine color temperature and tint adjustments
to better support professional video recording applications. In previous Android
versions, you could control white balance settings through
CONTROL_AWB_MODE
, which contains options limited to a
preset list, such as Incandescent,
Cloudy, and Twilight. The
COLOR_CORRECTION_MODE_CCT
enables the use of
COLOR_CORRECTION_COLOR_TEMPERATURE
and
COLOR_CORRECTION_COLOR_TINT
for precise adjustments of
white balance based on the correlated color temperature.
fun setCCT() {
// ... (Your existing code before this point) ...
val colorTemperatureRange: Range<Int> =
mStaticInfo.characteristics[CameraCharacteristics.COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE]
// Set to manual mode to enable CCT mode
reqBuilder[CaptureRequest.CONTROL_AWB_MODE] = CameraMetadata.CONTROL_AWB_MODE_OFF
reqBuilder[CaptureRequest.COLOR_CORRECTION_MODE] = CameraMetadata.COLOR_CORRECTION_MODE_CCT
reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE] = 5000
reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TINT] = 30
val request: CaptureRequest = reqBuilder.build()
// ... (Your existing code after this point) ...
}
The following examples show how a photo would look after applying different color temperature and tint adjustments:





相機夜間模式場景偵測
為協助應用程式瞭解何時切換至夜間模式相機工作階段,Android 16 新增了 EXTENSION_NIGHT_MODE_INDICATOR
。如果支援,則可在 Camera2 的 CaptureResult
中使用。
這是我們在「Instagram 如何讓使用者拍出令人驚豔的低光照相」網誌文章中,曾簡短提及的即將推出的 API。這篇文章是實用指南,說明如何實作夜間模式,並提供個案研究,說明如何透過應用程式內的相機,分享更多高品質的夜間模式相片。
動態相片拍攝意圖動作
Android 16 新增了標準意圖動作 ACTION_MOTION_PHOTO_CAPTURE
和 ACTION_MOTION_PHOTO_CAPTURE_SECURE
,可要求相機應用程式擷取動態相片並傳回。
您必須傳遞額外的 EXTRA_OUTPUT
來控制要寫入圖片的位置,或是透過 Intent.setClipData(ClipData)
傳遞 Uri
。如果您未設定 ClipData
,系統會在您呼叫 Context.startActivity(Intent)
時複製該值。
UltraHDR 圖片強化功能

Android 16 持續致力於透過 UltraHDR 圖片提供令人驚豔的圖像品質。新增對 HEIC 檔案格式中的 UltraHDR 圖片支援。這些圖片會取得 ImageFormat
類型的 HEIC_ULTRAHDR
,並包含類似現有 UltraHDR JPEG 格式的內嵌增益圖。我們也正在努力讓 AVIF 支援 UltraHDR,敬請期待。
此外,Android 16 會根據 ISO 21496-1 草稿標準,在 UltraHDR 中實作其他參數,包括取得及設定應套用的增益圖數值空間,以及支援 HDR 編碼的基礎圖片,並使用 SDR 增益圖。
圖形
Android 16 包含最新的圖形改善功能,例如使用 AGSL 的自訂圖形效果。
使用 AGSL 製作自訂圖形效果
Android 16 新增了 RuntimeColorFilter
和 RuntimeXfermode
,讓您可以製作複雜的效果 (例如閾值、棕褐色和色調飽和度),並套用至繪圖呼叫。自 Android 13 起,您可以使用 AGSL 建立可擴充 Shader
的自訂 RuntimeShaders。新的 API 會反映這項情況,新增由 AGSL 提供動力的 RuntimeColorFilter
,可擴充 ColorFilter
,以及 Xfermode
效果,讓您在來源和目的地像素之間實作以 AGSL 為基礎的自訂合成和混合效果。
private val thresholdEffectString = """
uniform half threshold;
half4 main(half4 c) {
half luminosity = dot(c.rgb, half3(0.2126, 0.7152, 0.0722));
half bw = step(threshold, luminosity);
return bw.xxx1 * c.a;
}"""
fun setCustomColorFilter(paint: Paint) {
val filter = RuntimeColorFilter(thresholdEffectString)
filter.setFloatUniform(0.5);
paint.colorFilter = filter
}
連線能力
Android 16 會更新平台,讓應用程式可使用最新的通訊和無線技術。
使用強化安全性的測距功能
Android 16 在搭载 Wi-Fi 6 的 802.11az 的受支持设备上为 Wi-Fi 位置信息添加了对强大的安全功能的支持,让应用能够将该协议的更高精确性、更高可伸缩性和动态调度与安全增强功能(包括基于 AES-256 的加密和防范中间人攻击)相结合。这样,在近距离使用情形(例如解锁笔记本电脑或车门)时,便可更安全地使用该功能。802.11az 与 Wi-Fi 6 标准集成,可利用其基础架构和功能实现更广泛的采用和更轻松的部署。
泛用範圍 API
Android 16 包含新的 RangingManager
,可用於判斷本機裝置與遠端裝置之間的距離和角度,前提是裝置支援硬體。RangingManager
支援各種測距技術,例如 BLE 通道測試、BLE RSSI 測距、超寬頻和 Wi-Fi 往返時間。
隨附裝置管理工具裝置狀態
在 Android 16 中,我們推出了新的 API,用於繫結隨附應用程式服務。當 BLE 在範圍內且已連上藍牙時,服務就會繫結;當 BLE 超出範圍或藍牙已中斷連線時,服務就會解除繫結。應用程式會根據各種 DevicePresenceEvent
接收新的 'onDevicePresenceEvent()' 回呼。如需更多詳細資訊,請參閱「startObservingDevicePresence(ObservingDevicePresenceRequest)」一文。
媒體
Android 16 包含多種功能,可改善媒體體驗。
相片挑選工具改善
相片挑選工具提供內建的安全方法,讓使用者授予應用程式存取權,以便存取本機和雲端儲存空間中的所選圖片和影片,而非整個媒體庫。透過 Google 系統更新和 Google Play 服務,結合使用模組化系統元件,可支援 Android 4.4 (API 級別 19) 以下版本。整合作業只需要幾行程式碼和相關的 Android Jetpack 程式庫。
Android 16 對相片挑選工具進行了以下改善:
- 內嵌式相片挑選器:新 API,可讓應用程式將相片挑選器嵌入其檢視區塊階層。這樣一來,使用者就能感受到應用程式更整合的部分,同時仍可利用程序隔離功能,讓使用者能夠選取媒體,而應用程式不需要過度廣泛的權限。如要盡可能提高各平台版本的相容性並簡化整合作業,如果您想整合內嵌的相片挑選工具,請使用即將推出的 Android Jetpack 程式庫。
- 相片挑選器中的雲端搜尋功能:新的 API 可讓 Android 相片挑選器從雲端媒體供應器搜尋內容。相片挑選工具中的搜尋功能即將推出。
進階專業影片
Android 16 推出了對進階專業影片 (APV) 轉碼器的支援,該轉碼器專為專業級高品質影片錄製和後製作業而設計。
APV 編碼器標準具有下列功能:
- 感知上無損的影片品質 (接近原始影片品質)
- 低複雜度和高吞吐量的單一影格編碼 (不含像素網域預測),以便更妥善支援編輯工作流程
- 支援高位元速率範圍 (最高可達數 Gbps),適用於 2K、4K 和 8K 解析度的內容,可透過輕量化熵值編碼方案啟用
- 為沉浸式內容和啟用平行編碼/解碼作業的框架平鋪作業
- 支援各種色度取樣格式和位元深度
- 支援多重解碼和重新編碼,且不會嚴重降低視覺品質
- 支援多視角影片和輔助影片,例如深度、alpha 和預覽
- 支援 HDR10/10+ 和使用者定義的中繼資料
OpenAPV 專案提供 APV 的參考實作項目。Android 16 將實作支援 APV 422-10 設定檔,提供 YUV 422 色彩取樣功能,以及 10 位元編碼和最高 2 Gbps 的目標位元率。
隱私權
Android 16 包含多種功能,可協助應用程式開發人員保護使用者隱私。
Health Connect 更新
Health Connect 新增了 ACTIVITY_INTENSITY
,這是根據世界衛生組織針對中度和劇烈活動制定的規範所定義的資料類型。每個記錄都需要開始時間、結束時間,以及活動強度是屬於中等或劇烈。
Health Connect 也包含支援醫療記錄的更新版 API。這樣一來,應用程式就能在取得使用者的明確同意後,以 FHIR 格式讀取及寫入醫療記錄。
Android 版 Privacy Sandbox
Android 16 中集成了最新版本的 Privacy Sandbox on Android,这是我们持续致力于开发可让用户放心地知道其隐私受到保护的技术的一部分。您可以访问我们的网站,详细了解 Privacy Sandbox on Android 开发者 Beta 版计划,以便顺利上手。不妨了解 SDK 运行时,它可让 SDK 在与其所服务的应用分离的专用运行时环境中运行,从而为用户数据收集和共享提供更强的保护措施。
安全性
Android 16 提供多項功能,可協助您強化應用程式的安全性,並保護應用程式的資料。
金鑰共用 API
Android 16 添加了一些 API,这些 API 支持与其他应用共享对 Android Keystore 密钥的访问权限。新的 KeyStoreManager
类支持按应用 uid 授予和撤消对密钥的访问权限,并包含一个供应用访问共享密钥的 API。
裝置板型規格
Android 16 可讓應用程式充分發揮 Android 板型規格的效益。
電視的標準影像和音訊品質架構
Android 16 中的新 MediaQuality
套件公開一組標準化 API,可存取音訊和相片設定檔,以及硬體相關設定。這可讓串流應用程式查詢設定檔,並動態套用至媒體:
- 採用更廣動態範圍進行調色的電影,需要更高色彩準確度,才能看見陰影中的細微細節,並調整環境光線,因此適合使用偏好色彩準確度而非亮度的設定檔。
- 體育賽事直播通常會以較窄的動態範圍進行調色,但觀眾通常會在日間觀看,因此如果設定檔將亮度優先於色彩準確度,就能獲得更好的效果。
- 完全互動式內容需要盡可能減少處理作業以縮短延遲時間,並需要更高的影格速率,這也是許多電視機上會提供遊戲設定檔的原因。
這個 API 可讓應用程式切換設定檔,使用者也能根據內容調整支援的電視。
國際化
Android 16 新增了功能,可在使用不同語言的裝置上提供更完善的使用者體驗。
直書文字
Android 16 新增了對垂直顯示和測量文字的低階支援功能,為程式庫開發人員提供基本的垂直書寫支援。這項功能特別適合日文等常使用直式書寫系統的語言。Paint
類別已新增旗標 VERTICAL_TEXT_FLAG
。使用 Paint.setFlags
設定這個標記時,Paint 的文字測量 API 會回報垂直進度,而非水平進度,而 Canvas
會垂直繪製文字。
val text = "「春は、曙。」"
Box(
Modifier.padding(innerPadding).background(Color.White).fillMaxSize().drawWithContent {
drawIntoCanvas { canvas ->
val paint = Paint().apply { textSize = 64.sp.toPx() }
// Draw text vertically
paint.flags = paint.flags or VERTICAL_TEXT_FLAG
val height = paint.measureText(text)
canvas.nativeCanvas.drawText(
text,
0,
text.length,
size.width / 2,
(size.height - height) / 2,
paint
)
}
}
) {}
自訂測量系統
使用者現在可以在「設定」中,透過區域偏好設定自訂測量系統。使用者偏好設定會納入語言代碼,因此您可以在 ACTION_LOCALE_CHANGED
上註冊 BroadcastReceiver
,以便在地區偏好設定變更時,處理語言代碼設定的變更。
使用格式化工具可協助您提供符合當地體驗的服務。舉例來說,如果使用者將手機設為英文 (美國),或使用英文 (美國) 並將公制系統設為偏好的測量系統,則英文 (美國) 中的「0.5 英寸」會顯示為「12.7 公釐」。
如要找到這些設定,請開啟「設定」應用程式,並依序前往「系統」>「語言與地區」。