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

  • 相关阅读:
    分享自己写的基于Dapper的轻量级ORM框架~
    无屏幕和键盘配置树莓派WiFi和SSH
    树莓派配置静态IP
    给树莓派Raspbian stretch版本修改软件源
    使用powershell批量更新git仓库
    nodejs开发过程中遇到的一些插件记录
    在Ubuntu上搭建IntelliJ IDEA license server服务器
    腾讯云Ubuntu服务器修改root密码
    Elasticsearch搜索类型(query type)详解
    dubbo作为消费者注册过程分析
  • 原文地址:https://www.cnblogs.com/xingyyy/p/3282268.html
Copyright © 2011-2022 走看看