爱玺玺

爱玺玺的生活日记本。wx:lb87626

android创建桌面小控件

1,创建类继承AppWidgetProvider

package cn.jianhaozhan.widgettest;


import android.appwidget.AppWidgetManager;

import android.appwidget.AppWidgetProvider;

import android.content.Context;

import android.content.Intent;


public class MyWidget extends AppWidgetProvider {


/* (non-Javadoc)

* @see android.appwidget.AppWidgetProvider#onDeleted(android.content.Context, int[])

*/

@Override

public void onDeleted(Context context, int[] appWidgetIds) {

// TODO Auto-generated method stub

super.onDeleted(context, appWidgetIds);

System.out.println("onDeleted");

}


/* (non-Javadoc)

* @see android.appwidget.AppWidgetProvider#onDisabled(android.content.Context)

*/

@Override

public void onDisabled(Context context) {

// TODO Auto-generated method stub

super.onDisabled(context);

System.out.println("onDisabled");

}


/* (non-Javadoc)

* @see android.appwidget.AppWidgetProvider#onEnabled(android.content.Context)

*/

@Override

public void onEnabled(Context context) {

// TODO Auto-generated method stub

super.onEnabled(context);

}


/* (non-Javadoc)

* @see android.appwidget.AppWidgetProvider#onReceive(android.content.Context, android.content.Intent)

*/

@Override

public void onReceive(Context context, Intent intent) {

// TODO Auto-generated method stub

super.onReceive(context, intent);

System.out.println("onReceive");

}



/* (non-Javadoc)

* @see android.appwidget.AppWidgetProvider#onUpdate(android.content.Context, android.appwidget.AppWidgetManager, int[])

*/

@Override

public void onUpdate(Context context, AppWidgetManager appWidgetManager,

int[] appWidgetIds) {

// TODO Auto-generated method stub

super.onUpdate(context, appWidgetManager, appWidgetIds);

System.out.println("onUpdate");

}


}


2,清单文件注册控件内容接收者方式

<receiver android:name="cn.jianhaozhan.widgettest.MyWidget" >

            <intent-filter>

                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />

            </intent-filter>


            <meta-data

                android:name="android.appwidget.provider"

                android:resource="@xml/example_appwidget_info" />

        </receiver>

3,创建xml文件夹,创建android:resource="@xml/example_appwidget_info" 对应的文件

<?xml version="1.0" encoding="utf-8"?>

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"

    android:minWidth="275dp"

    android:minHeight="72dp"

    android:updatePeriodMillis="0"

    android:initialLayout="@layout/example_appwidget"

    android:resizeMode="horizontal|vertical"

    >

</appwidget-provider>


<!-- 

minWidth,minHeight : 最小的宽高

updatePeriodMillis : 更新时间,毫秒值,最短不能小于30分钟,设置0跟30分钟一个效果

previewImage : 预览图片,不设置默认使用应用图标

initialLayout :widget布局文件

configure : 可选数据,创建widget之后会启动那个activity

resizeMode : 设置widget显示尺寸规则,主要用来设置屏幕横竖屏切换保证widget布局不会变形

widgetCategory : 设置widget显示在什么地方 ,home_screen : 桌面    keyguard:键盘

initialKeyguardLayout : 设置锁屏的时候显示控件的布局

 -->

4,创建样式文件android:initialLayout="@layout/example_appwidget"

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical" >

    <TextView 

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:text="我是桌面小控件"

        android:textSize="25sp"

        android:textColor="#ff0000"

        />

</LinearLayout>


5,不是所有控件都能做成桌面小控件,必须带有@Remoteview注释的控件才能做成桌面小控件。

发表评论:

Powered By Z-BlogPHP 1.4 Deeplue Build 150101

Copyright Your WebSite.Some Rights Reserved.

蜀ICP备11021721号-5