• 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

  • 相关阅读:
    linux recv 返回值与linux socket 错误分析
    位域
    mysql修改root密码的方法
    mysql Plugin ‘InnoDB’ init function returned error
    centos查看版本
    CentOS 7.0 使用 yum 安装 MariaDB 及 简单配置
    CentOS 7.X 中systemctl命令用法详解
    phpMyAdmin关于PHP 5.5+ is required. Currently installed version is: 5.4.16问题
    linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
    自动设置IP地址bat脚本
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3282268.html
Copyright © 2020-2023  润新知