• Android Widget搭建过程


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

    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: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> 

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

  • 相关阅读:
    针对Ext js的分页存储过程适用于sqlserver2008
    30分钟LINQ教程
    windows server 2003 sp2安装VS2010之后需要打的几个布丁
    【翻译】Prism4:初始化Prism应用程序(上)
    ASP.NET WebAPI 路由规则与POST数据
    基于.net开发chrome核心浏览器【二】
    六种SQL Server删除重复行的方法
    Web在线操作Office文件 (转)
    ASP.NET 中如何对生成的 HTML 内容流进行控制?
    使用键值表实现通用流水号(转)
  • 原文地址:https://www.cnblogs.com/tt_mc/p/1717085.html
Copyright © 2020-2023  润新知