Android 桌面小部件

时间:2021-05-21 22:02:45

1. 添加AppWidgetProvider 实际上就是个带有界面的BroadcastReceiver

public class SimpleWidgetProvider extends AppWidgetProvider {

}

2. 在res -> xml 下添加AppWidgetProviderInfo

 <?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
   android:minWidth="120dp"
   android:minHeight="60dp"
android:updatePeriodMillis="1800000"
android:initialLayout="@layout/hoem_widget"
android:resizeMode="horizontal|vertical"
android:widgetCategory="home_screen|keyguard"
android:previewImage="@drawable/ic_launcher">
</appwidget-provider>

3. 添加桌面widget的layout

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:orientation="vertical"
   android:background="@color/accent_normal">
   <ImageView
     android:id="@+id/doge_imageView"
     android:layout_width="110dp"
     android:layout_height="110dp"
     android:src="@drawable/ic_clear_white_24dp" />
</LinearLayout>

4. 注册

 <receiver android:name=".SimpleWidgetProvider" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
<action android:name="com.seewo.homewidgets.action.CLICK" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/appwidget_provider_info" />
</receiver>

5. 运行后,长按桌面空白处,在底部的桌面小部件列表中将自定义的部件拖到桌面

Android  桌面小部件

Android  桌面小部件

Android  桌面小部件