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

  • 相关阅读:
    滚动条美化插件 nicescroll
    百度地图api
    Echarts的重点
    3月20号课堂随笔
    循环for语句
    有关一些CSS的基本内容
    HTML基本标签和一些注释的问题
    2018年3月17号的随堂笔记
    03.15补习
    for 的相关用法
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3282268.html
Copyright © 2011-2022 走看看