AndroidUI组件----AppWidget控件入门详解我们可以把Widget理解成放置在桌面上的小组件(挂件),有了Widget,我们可以很方便地直接在桌面上进行各种操作,例如播放音乐。当我们长按桌面时,可以看到Widget选项,图所示:
点击上图中箭头处的widgets图标,会出现如下界面:(都是widget)
长按上图中的任意一个widget,就可以将其放到桌面上。
Widget的使用
Widget的实现思路
(1)在AndroidManifest中声明AppWidget;
(2)在xml目录中定义AppWidget的配置文件;
(3)在layout目录中定义Widget的布局文件;
(4)新建一个类,继承AppWidgetProvider类,实现具体的widget业务逻辑。
我们需要新建一个类,继承AppWidgetProvider。点开AppWidgetProvider,发现AppWidgetProvider竟然是继承自BroadcastReceiver。
为什么Widget是一个广播接收器呢?我们知道,BroadcastReceiver类中有一个onReceive方法,用来接收广播。当我们在桌面挂件上去做操作时,必然引起应用的改变,这就涉及到挂件和应用之间的通信,此时用广播来通信是再好不过了。
Widget的具体使用步骤
(1)新建一个类TestWidget.java,继承AppWidgetProvider:TestWidget.java:
importandroid.appwidget.AppWidgetProvider;
importandroid.content.Context;
importandroid.content.Intent;
/
Createdbysmyhvaeon2016/9/7.
/
publicclassTestWidgetextendsAppWidgetProvider{
@Override
publicvoidonReceive(Contextcontext,Intentintent){
super.onReceive(context,intent);
}
}
(2)因为Widget是一个广播接收器,所以我们需要在清单文件中注册:
android:name="android.appwidget.provider"
android:resource="@layout/widget_setting"/>
04行:action是过滤条件,用来过滤行为,监测widget的更新。08行:android:resource指定了widget的配置。我们知道,属性在清单文件中是用来存储数据的。
(3)layout文件夹中新建文件widget_setting.xml:(widget的配置文件)setting_widget.xml:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:initialLayout="@layout/layout_widget"
android:minHeight="140dp"
android:minWidth="140dp"
android:previewImage="@mipmap/ic_launcher"
android:updatePeriodMillis="20000"
android:widgetCategory="home_screen"
>
08行:android:initialLayout指定了widget的布局。09行:android:updatePeriodMillis指定更新的时间周期10行:android:widgetCategory="home_screen"将widget显示在主屏幕上(也可以显示在锁屏上)
(4)layout文件夹中新建文件layout_widget.xml:(widget的布局)layout_widget.xml:
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="LargeText"
android:textAppearance="?android:attr/textAppearanceLarge"/>
|
|