在 Android 開發中,App Widget(應用小部件)是提升用戶體驗的關鍵組件。許多知名應用(如墨跡天氣)提供 4×1、5×1、4×2 等多種尺寸供用戶選擇,這究竟是如何實現的?本文將深入解析 App Widget 尺寸配置的核心機制與實現步驟。
App Widget 的尺寸、更新頻率、初始佈局等屬性均通過 XML 配置文件定義。請在 res/xml/ 目錄下創建 appwidget_provider.xml,典型配置如下:
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="https://schemas.android.com/apk/res/android"
android:minWidth="200dp"
android:minHeight="30dp"
android:updatePeriodMillis="1000"
android:initialLayout="@layout/firstappwidget" />
onUpdate(),適合時鐘類 Widget;一般應用建議設為 30 分鐘以上以省電。res/layout/ 下的佈局文件(如 firstappwidget.xml),定義 Widget 的 UI 結構。在 res/layout/firstappwidget.xml 中編寫標準 Android 佈局。為適配多種尺寸,建議:
LinearLayout 或 ConstraintLayout 實現彈性佈局。wrap_content、match_parent、layout_weight。layout-w320dp、layout-w480dp),系統會自動匹配最合適的佈局。別忘在 AndroidManifest.xml 內 <application> 標籤下聲明:
<receiver android:name=".MyWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/appwidget_provider" />
</receiver>
Android 3.1+ 允許在 appwidget-provider.xml 中添加 android:previewImage,在 Widget 選擇器中顯示各尺寸縮圖,提升用戶選擇體驗。
掌握上述機制,即可像墨跡天氣一樣,為用戶提供豐富多樣的 Widget 尺寸選擇。