`
407827531
  • 浏览: 1074177 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Android平台下简单Widget的搭建过程

阅读更多

推荐安卓开发神器(里面有各种UI特效和android代码库实例)

Android平台下Widget的搭建过程为:

转自:http://www.cnblogs.com/alwaysyouare/archive/2010/01/06/1640219.html

1.在res/layout下创建Widget的布局文件:digitalclock.xml

<?xml version="1.0" encoding="UTF-8"?>
<TextView  
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/time"
    android:textSize="45px"
    android:scrollX="30px"
    android:scrollY="30px"
    android:textStyle="bold"
    android:textColor="#ff000000"
    android:background="@drawable/bg"
    />


2.在res/xml下创建Widget的描述文件:est_appwidget.xml

<?xml version="1.0" encoding="UTF-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="186dip"
    android:minHeight="212dip"
    android:updatePeriodMillis="1000"
    android:configure="com.activity.TestActivity" // 第一次启动时,配置界面
    android:initialLayout="@layout/digitalclock"/>


3. 从AppWidgetProvider继承一个类(ESTTime),重写其虚方法

package com.android.test.esttime;

import android.app.Service;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.os.IBinder;
import android.text.format.Time;
import android.widget.RemoteViews;


public class ESTTime extends AppWidgetProvider {
    
    /** Called when the activity is first created. */
    @Override
    public void onUpdate(Context context,
            AppWidgetManager appWidgetManager,int[] appWidgetIds )
    {
        context.startService(new Intent(context,UpdateService.class));        
    }
    
  //Service类
    public static class UpdateService extends Service {
        @Override
        public void onStart(Intent intent,int startId){
            Time estTime = new Time("EST");
            estTime.setToNow();
            RemoteViews updateViews = 
                new RemoteViews(getPackageName(),
                        R.layout.digitalclock);
            updateViews.setTextViewText(R.id.time, estTime.format("%H:%M"));
            
            ComponentName thisWidget = new ComponentName(this,ESTTime.class);
            
            AppWidgetManager manager = AppWidgetManager.getInstance(this);
            manager.updateAppWidget(thisWidget, updateViews);
        }

        @Override
        public IBinder onBind(Intent intent) {
            // TODO Auto-generated method stub
            return null;
        }

    }
    

}


4.在AndroidManifest.xml中注册本Widget

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.android.test.esttime"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <receiver android:name=".ESTTime"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
            </intent-filter>
            <meta-data android:name="android.appwidget.provider" 
            android:resource="@xml/est_appwidget"/>            
        </receiver>
        <service android:name=".ESTTime$UpdateService"/>
    </application>
    <uses-sdk android:minSdkVersion="3" />
</manifest> 



5.TestActivity.xml

int mAppWidgetId;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.oawidget);
		mBtn = (Button)findViewById(R.id.testbtn);
		mBtn.setOnClickListener(l);
		
		Intent intent = getIntent();
		Bundle extras = intent.getExtras();

		if (extras != null) {
		    mAppWidgetId = extras.getInt(
		            AppWidgetManager.EXTRA_APPWIDGET_ID, 
		            AppWidgetManager.INVALID_APPWIDGET_ID);

		}
	}
	
	View.OnClickListener l = new OnClickListener() {
		
		@Override
		public void onClick(View v) {
			Intent resultValue = new Intent();
			resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId);
			setResult(RESULT_OK, resultValue);
			finish();
		}
	};


最后,编译运行。这样在Home上长按弹出的Widget列表中就有新创建的Weiget了 。

 

分享到:
评论
1 楼 gengchangrui 2010-08-12  
你好,我按照你的这个步骤写出来,运行之后怎么时间无法更新呢,不是设定的是1秒更新一次吗?求解

相关推荐

    android平台天气预报widget的设计与实现--大学毕业论文设计.doc

    Android 平台天气预报 widget 的设计与实现 从 Android 平台天气预报 widget 的设计与实现毕业论文中,我们可以总结出以下知识点: 1. Android 平台基础知识:Android 平台是基于 Linux 内核的开源操作系统,为...

    Android平台天气预报widget的设计与实现毕业论文.doc

    "Android平台天气预报Widget的设计与实现" Android 平台天气预报 Widget 的设计与实现是基于 Android 平台的开发技术的研究和分析。本文首先介绍了 Android 开发所需的基础知识,然后详细介绍了软件的具体实现过程...

    android axure widget包

    标题中的“android axure widget包”指的是一个专门为Android平台设计的Axure组件集合,包含了一系列Android应用中常见的小部件(Widget)模板,如按钮、滑块、开关、列表视图等。这些组件设计得与Android原生UI风格...

    widget搭建开发环境

    ### Widget搭建开发环境 在移动应用开发领域,Widget作为轻量级的应用程序,在用户体验和功能实现上具有独特的优势。本文将详细介绍如何基于OPhone平台进行Mobile Widget的开发环境搭建及简单示例,帮助开发者快速...

    Android平台天气预报widget的的设计和实现20.doc

    总结来说,Android 平台天气预报 Widget 的设计和实现涉及到了 Android 开发的基本流程,包括环境搭建、网络数据的获取与解析、UI 设计与数据绑定、性能优化等多个方面,是一个综合性的开发实践项目。通过这个项目,...

    Android天气预报widget的设计与实现毕业论文

    2.1 ANDROID开发环境搭建流程 3 2.1.1 安装Eclipse ADT Plugin插件 3 2.1.2 安装Android SDK 4 2.1.3 更新Adroid SDK 5 2.1.4 配置Android模拟器 6 2.2 开发工具ECLIPSE介绍 7 第3章 ANDROID程序设计基础 10 3.1 ...

    Android搭建开发平台

    本文将详细介绍在Windows环境下搭建Android开发平台的过程,并提供一个简单的“Hello World”示例帮助读者快速上手。 #### 二、所需软件及工具 1. **Java JDK SE 1.6** - 文件名称:`jdk-6u12-windows-i586-p....

    Android 天气预报加widget源码.zip

    【Android 天气预报加Widget源码解析】 在Android开发中,天气预报应用程序是一个常见的实践项目,它结合了网络请求、数据解析、UI设计等多种技术。而Widget则是Android系统提供的一种桌面小部件功能,允许用户将...

    Android命令行开发环境搭建和HelloWorld Project

    本文将详细介绍如何搭建Android命令行开发环境,并通过创建一个简单的"HelloWorld"项目来实践这一过程。 首先,我们需要下载并安装Android SDK。Android SDK包含了开发Android应用所需的工具和库,包括构建工具、...

    如何搭建android开发平台

    总的来说,搭建Android开发平台包括下载和安装Android SDK、JDK、Eclipse以及ADT插件,然后配置环境变量,创建并运行一个简单的Android项目以验证环境是否配置成功。记住,这个过程可能会因网络状况、操作系统和个人...

    Android 天气预报加widget源码-IT计算机-毕业设计.zip

    1. **Android SDK与环境搭建**:首先,你需要了解如何安装和配置Android Studio,这是Google官方提供的集成开发环境(IDE)用于编写Android应用。源码的运行和调试都将在这个环境中进行。 2. **XML布局设计**:应用...

    Android开发环境搭建及HelloWidget编写

    在这个场景中,我们关注的是“Android开发环境搭建及HelloWidget编写”,这将涵盖如何配置Android Studio,创建一个新的Android项目,以及编写和测试一个基本的Widget。 1. **Android开发环境搭建**: - **下载...

    Windows下开发Android环境搭建手册 从零开始_

    【Windows下开发Android环境搭建手册 从零开始】 在Windows操作系统上进行Android应用程序开发,首先需要搭建一个完整的开发环境。这个过程包括安装Java Development Kit (JDK),集成开发环境Eclipse,Android SDK...

    Android高手进阶教程(八)之----Android Widget开发案例(世界杯倒计时!) ..pdf

    在深入探讨如何开发一款具有实时世界杯倒计时功能的Android Widget之前,我们先来了解下Widget在Android系统中的地位和作用。Widget,即桌面小部件,是一种可以放置在用户主屏幕上的小型应用程序,用于提供便捷的...

    Widget工具制作教程

    本教程将深入探讨如何制作Widget工具,涉及的关键知识点包括开发环境搭建、编程语言选择、设计原则以及发布流程。 一、开发工具选择 制作Widget工具首先需要合适的开发工具。对于桌面Widget,可能需要如Adobe Air...

    android项目开发环境搭建

    通过以上步骤,你就成功搭建了Android开发环境并编写了第一个简单的应用程序。接下来,你可以继续深入学习Android的UI设计、生命周期管理、数据存储、网络编程等更复杂的主题,从而成为一名熟练的Android开发者。

Global site tag (gtag.js) - Google Analytics