`
Bauble
  • 浏览: 65980 次
  • 性别: Icon_minigender_1
  • 来自: Mercury
社区版块
存档分类
最新评论

Android30_AppWidget使用(一)

阅读更多

 

一、App Widget定义

       App WidgetApplication Widget的缩写,特指在android手机桌面上放置的控件。比如时钟等。另外,App Widget和我们自己写的程序并不是运行在同一进程当中的。在桌面长按就可以向桌面添加各种控件:


 

 

二、App Widget相关的基本概念

       1.AppWidgetProviderInfo对象:为App Widget提供元数据,包括布局,更新频率等数据,该对象定义在XML文件当中。

       2.AppWidgetProvider:定义了App Widget的基本声明周期函数。

 

三、创建一个App Widget的步骤

 


        1.定义AppWidgetProviderInfo

              res/xml文件夹中定义一个名为appwidger_info.xml的文件:

              android:initialLayout:初始化布局文件

              android:updatePeriodMillis:更新时间

 

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:minWidth="280dp"
  android:minHeight="70dp"
  android:updatePeriodMillis="8640000"
  android:initialLayout="@layout/appwidget"/>

        2.AppWidget指定样式和布局:

              Res/layout文件夹下定义一个新的布局文件appwidget.xml,里面可以添加一些控件,用于控制在桌面显示的样式,给AppWidgetProviderInfo这个对象提供数据。其中image是一张小鸟的png图片。

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ImageButton 
	android:id="@+id/widgetTextId"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/image"
    android:background="#00000000"/>
</LinearLayout>

        3.实现AppWidgetProvider

              onUpdate:在到达指定的更新时间之后或者当用户想桌面添加AppWidget时会调用该方法;

              onDeleted:当App Widget被删除时,会调用该方法;

              onEnabled:当一个AppWidget的实例第一次被创建时,会调用该方法;

              onDisabled:当最后一个App Widget实例被删除后,会调用;

              onReceive:接收广播事件。请求分发。

 

package com.android.activity;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
public class AppWidgetProviderTest extends AppWidgetProvider{
	@Override
	public void onUpdate(Context context, AppWidgetManager 
			appWidgetManager, int[] appWidgetIds) {
		System.out.println("AppWidgetProvider --> onUpdate");
		super.onUpdate(context, appWidgetManager, appWidgetIds);
	}
	@Override
	public void onDeleted(Context context, int[] appWidgetIds) {
		System.out.println("AppWidgetProvider --> onDeleted");
		super.onDeleted(context, appWidgetIds);
	}
	@Override
	public void onDisabled(Context context) {
		System.out.println("AppWidgetProvider --> onDisabled");
		super.onDisabled(context);
	}
	@Override
	public void onEnabled(Context context) {
		System.out.println("AppWidgetProvider --> onEnabled");
		super.onEnabled(context);
	}
}

 运行结果:



 添加后的结果:


  • 大小: 61.3 KB
  • 大小: 15.2 KB
  • 大小: 54.9 KB
  • 大小: 105.4 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics