zoukankan      html  css  js  c++  java
  • Android笔记之AppWidget使用

    实现步骤:
    1、为AppWidget提供一个布局文件activity_widget.xml,用来显示Widget的界面。
    2、创建一个类继承自AppWidgetProvider,并覆写里面的相关的方法,实现appwidget的功能。
    3、在xml创建一个文件appwidget01.xml来定义相关属性
    4、在程序中注册Manifest.xml。

    1、首先为appwidget设计布局文件activity_widget.xml:

    但是并不支持所有布局:

    A RemoteViews object (and, consequently, an App Widget) can support the following layout classes:
     FrameLayout
     LinearLayout
     RelativeLayout
    And the following widget classes:
     AnalogClock
     Button
     Chronometer
     ImageButton
     ImageView
     ProgressBar
     TextView
    Descendants of these classes are not supported.

    2、创建类实现appwidget的代码部分:没有这个,虽然插件可以显示,但每次放置插件都会报错

    public class WidgetActivity extends AppWidgetProvider
    //Appwidgetprovider是BroadcastReceiver的子类,这个类处理Appwidget的广播 {
        //删除一个AppWidget时调用
    @Override public void onDeleted(Context context, int[] appWidgetIds) { super.onDeleted(context, appWidgetIds); } // 最后一个appWidget被删除时调用 @Override public void onDisabled(Context context) { super.onDisabled(context); } /** * AppWidget的实例第一次被创建时调用 * */ @Override public void onEnabled(Context context) { super.onEnabled(context); } /** * 接受广播事件 * */ @Override public void onReceive(Context context, Intent intent) {
              super.onReceive(context, intent); } /** * 到达指定的更新时间或者当用户向桌面添加AppWidget时被调用 * */ @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { } }

    3、xml下定义插件属性appwidget01.xml:它决定了哪个layout文件为widget的布局,长和宽,以及刷新时间

    <?xml version="1.0" encoding="utf-8"?>
      <!-- android:previewImage="@drawable/test" 设置预览图-->  
    <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
        android:initialLayout="@layout/activity_widget"
        android:minHeight="220.0dip"
        android:minWidth="294.0dip"
        android:updatePeriodMillis="1800000" />

    4、在程序中注册Manifest.xml

    <!-- .WidgetActivity是widget代码的类名 -->
    <!-- @xml/appwidget01是为widget定义的属性文件 -->
    <
    receiver android:name=".WidgetActivity"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@xml/appwidget01" /> </receiver>

    <receiver android:name后面还可以加上属性:

    (1)android:label="@string/widget_small_4_1" :appwidget显示的名字4x1

  • 相关阅读:
    欧几里得方程 模幂运算 模乘运算 蒙哥马利模乘 素数测试
    HLG 1058workflow解题报告
    poj 3264Balanced Lineup解题报告
    JavaScript之HTMLCollection接口
    随记2(IE下调试Javascript)
    抽象类和接口
    JavaScript之字符串处理函数
    随记1
    多态
    自动内存管理
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3282268.html
Copyright © 2011-2022 走看看