2.1 App Widgets
2.1 App Widgets
App widgets
Lesson 2
minHeight previewImage
minWidth resizeMode
initialLayout widgetCategory
updatePeriodMillis configure
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minHeight="40dp"
android:minWidth="40dp"
android:initialLayout="@layout/new_app_widget"
android:updatePeriodMillis="86400000"
android:previewImage="@drawable/new_appwidget_preview"
android:resizeMode="horizontal|vertical"
android:widgetCategory="home_screen"
android:configure=
"Com.example.android.widgettest
.MyAppWidgetConfigureActivity">
</appwidget-provider>
1 40 dp
2 110 dp
3 180 dp
4 250 dp
● FrameLayout
● LinearLayout
● RelativeLayout
● GridLayout
@Override
public void onUpdate(Context context,
AppWidgetManager appWidgetManager, int[] appWidgetIds) {
// Multiple widgets active, so update all of them
for (int appWidgetId : appWidgetIds) {
// Construct the RemoteViews object
// ...
<activity android:name=".ExampleAppWidgetConfigure">
<intent-filter>
<action
android:name=
"android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
This work is licensed under a
Advanced Android Development App widgets Creative Commons Attribution 4.0 Inter 51
national License
Automatic widget-provider entry
Configuration activity is also declared in provider-info XML file
using android:configure attribute
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:configure=
"com.example.android.ExampleAppWidgetConfigure"
... >
</appwidget-provider>
AppWidgetManager appWidgetManager =
AppWidgetManager.getInstance(this);
// Create RemoteViews object with the widget layout resource
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.example_appwidget);
// Update app widget with widget ID and new remote view:
appWidgetManager.updateAppWidget(mAppWidgetId, views);