Esempio Widget

 

Creare un nuovo progetto android chiamato HelloWidget. Nel form di creazione del progetto togliere la spunta dall'opzione "Create Activity"

 

Salvare l'immagine widget_bg_normal.9.png nella cartella res/drawable. Questa immagine e' in un formato particolare chiamato NinePatch

 

Modificare il layout main.xml come di seguito

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:orientation="vertical"
	android:background="@drawable/widget_bg_normal" android:layout_gravity="center"
	android:layout_height="wrap_content">
	<TextView android:id="@+id/widget_textview" android:text="Widget text"
		android:layout_height="wrap_content" android:layout_width="wrap_content"
		android:layout_gravity="center_horizontal|center"
		android:layout_marginTop="5dip" android:padding="10dip"
		android:textColor="@android:color/black" />
</LinearLayout>

 

Creare un file chiamato xml/hello_widget_provider.xml

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider 
	xmlns:android="http://schemas.android.com/apk/res/android"
	android:minWidth="146dip" 
	android:minHeight="72dip"
	android:updatePeriodMillis="10000" 
	android:initialLayout="@layout/main" />

 

Creare una classe chiamata HelloWidget che estende AppWidgetProvider

public class HelloWidget extends AppWidgetProvider {
 
}

 

Modificare il manifest aggiungendo il seguente tag all'interno del tag <application>

		<receiver android:name=".HelloWidget" android:label="@string/app_name">
			<intent-filter>
				<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
			</intent-filter>
			<meta-data android:name="android.appwidget.provider"
				android:resource="@xml/hello_widget_provider" />
		</receiver>

Lanciando l'applicazione il widget viene installato nell'emulatore. Per aggiungerlo alla schermata principale tenere premuto col mouse sulla schermo finche' non compare un menu, selezionare widget e quindi HelloWidget

AttachmentSize
widget_bg_normal.9.png268 bytes
HelloWidget.zip43.38 KB